Universidade Federal da Bahia Instituto de Matemática Curso de Pós-graduação em Matemática Dissertação de Mestrado Método de Pontos Interiores Aplicado a um Problema de Seqüenciamento Job-Shop Alexander dos Santos Dutra Salvador-Bahia Novembro/ 2004 Método de Pontos Interiores Aplicado a um Problema de Seqüenciamento 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 Prof. Dr. Isamara Carvalho Alves (Orientador). Prof. Dr. Akebo Yamakami Prof. Dr. Carlos Eduardo Trabuco Dórea Dutra, A. “Método de Pontos Interiores Aplicado a um Problema de Seqüênciamento Job-Shop. ” / Alexander dos Santos Dutra. Salvador-Ba, 2004. Orientador: Isamara de Carvalho Alves (Universidade Federal da Bahia). Dissertação de Mestrado apresentada ao curso de Pós-graduacão em Matemática da UFBA, 99 páginas. Palavras-Chave:Programação Não-Linear, Método de Pontos Interiores, Lagrangeano Aumentado, Problemas de Seqüenciamento Job-Shop. A Deus, á minha amada e aos meus pais. “Não há nada a temer a menos que me esqueça de como Deus me conduziu até aqui. ” Ellen White. Agradecimentos A Deus, pelos sinais e maravilhas operadas na vida de minha famı́lia durante este perı́odo de estudos. O Senhor tornou realidade aquilo que todos julgávamos impossı́vel. A Deus todo louvor por mais esta vitória. A Suzy, Alexander Junio e Adrielle. Suzy, minha esposa amada, sou grato por acreditar em mim mesmo nos momentos que nem eu pude acreditar, seu amor faz de mim o que sou. Meus filhos, Alexander Junio e Adrielle, não foi fácil ter papai tanto tempo perto dos olhos e com a mente tão distante, obrigado por me fazerem sorrir. A todos os colegas de mestrado agradeço pelo companheirismo e amizade. Aos grandes matemáticos e amigos Andrade, Augusto, Fábio e Gustavo obrigado pela contribuição sempre iluminada nos estudos. José Luı́s, obrigado pelo incentivo e apresentação a esta linha de pesquisa que tanto me fascina. Ernesto, meu companheiro de pesquisa saiba que tem sido ”massa”trabalhar contigo. Aos professores que contribuı́ram para que este momento fosse possı́vel. Em particular sou grato aos professores José Fernandes, Elinalva Vergasta e Marco Antônio pelo incentivo e apoio para que pudesse enfrentar esta etapa de estudos. Um agradecimento especial a professora Isamara Alves pela orientação e disponibilidade constante. Resumo O problema de seqüenciamento do tipo job-shop é um problema que desperta o interesse de pesquisadores por sua caracterı́stica computacional na categoria de um problema NP - difı́cil . Além disto, como um problema de programação matemática, o job-shop constitui um particular desafio por possuir um espaço de busca não convexo. Tratamos neste trabalho de um problema de job-shop estático, determinı́stico e com máquinas especializadas, para o qual adotamos uma modelagem matemática contı́nua e não linear. É verdade que modelos de programação não linear são muitas vezes evitados em função da dificuldade encontrada em garantir a convergência para um mı́nimo global. Contudo, essa dificuldade pode ser superada com o uso do Método de Pontos Interiores (MPI) o qual tem sido aplicado com sucesso na resolução de problemas dessa natureza. Este trabalho realiza, portanto, uma análise matemática a fim de viabilizar o uso de MPI na resolução de um problema de job-shop especı́fico. Propomos o uso de MPI associado com o Lagrangeano Aumentado que foi usado para guiar o algoritmo por um caminho decrescente para a função objetivo. Para tal, foi preciso alterar algumas das informações de segunda ordem a fim de encontrar direções primais que garantam esse decrescimento. Mostramos que as mudanças efetuadas não alteram a convergência do problema primal, porém a convergência do problema dual é influenciada. Em função disso, adotamos uma variação na direção dual ajustando-a à função de penalidade usada e determinamos as condições favoráveis à convergência para um ponto que minimize a função objetivo do problema tratado. Palavras Chave: Programação Não-Linear, Método de Pontos Interiores, Lagrangeano Aumentado, Problemas de Seqüenciamento Job-Shop. Abstract The job-shop-type scheduling problem is an issue that has called the attention of researchers because of its computational characteristic in the category of an NPhard problem. Besides, as a mathematical programming problem, job-shop poses a particular challenge because it comprises a non-convex search environment. We deal, here, with a specific job-shop problem for which we adopt a continuous, non-linear mathematical model. Non-linear programming models are often avoided viz-à-viz the difficulty we meet when we try to ensure the convergence to a global minimum. However, this difficulty can be overcome with the use of the Interior Point Method (IPM), which has been successfully applied when we try to solve problems of this kind . This thesis proposes, therefore, a mathematical analysis in order to make possible the use of IPM in the resolution of a specific type of job-shop problem. We propose the use of IPM together with a Augmented Lagrangean so as to lead the algorithm in a decreasing way towards the objective function. For that reason, we needed to alter a few items of second-order information so that we could find primal directions to ensure that reduction. We shall demonstrate that the accomplished changes did not significantly alter the convergence of the primal problem. Nevertheless, the convergence of the dual problem is affected. On account of that, we have resorted to a variation in the dual direction, fine-tuning it to the penalty utilized. By that means we are able to determine the conditions that are favorable to a convergence to a point which minimizes the objective function of the problem we are dealing with. KEY-WORDS: Non-Linear Program, Interior Point Method, Lagrangean Augmented, Job-Shop Scheduling Problems. Sumário Lista de Figuras xii Lista de Tabelas xiii Introduçao Geral 1 1 O Problema de Seqüenciamento Job-Shop 3 1.1 Problemas de Fábrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2 O Problema de Seqüenciamento Job-Shop . . . . . . . . . . . . . . . . 5 1.2.1 Modelagem por grafos disjuntivos . . . . . . . . . . . . . . . . . 7 1.2.2 Representação de soluções pelo diagrama de Gantt . . . . . . . 8 Formulação Matemática para o Job-Shop . . . . . . . . . . . . . . . . . 10 1.3.1 Critérios de otimização . . . . . . . . . . . . . . . . . . . . . . 10 1.3.2 Modelo de programação linear com variáveis binárias . . . . . . 11 1.3.3 Modelo de programação não-linear . . . . . . . . . . . . . . . . 12 Métodos de Resolução para o Job-Shop . . . . . . . . . . . . . . . . . . 13 1.4.1 Métodos exatos . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4.2 Métodos heurı́sticos . . . . . . . . . . . . . . . . . . . . . . . . . 14 1.4.3 Métodos de decomposição . . . . . . . . . . . . . . . . . . . . . 15 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.3 1.4 2 Método de Pontos Interiores 2.1 18 O Método de Pontos Interiores: Ontem e Hoje . . . . . . . . . . . . . . 19 2.1.1 Breve histórico . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.1.2 Aplicações do método de pontos interiores . . . . . . . . . . . . 20 2.1.3 O método de pontos interiores versus método simplex . . . . . . 21 2.1.4 Métodos de decomposição e método de pontos interiores . . . . 22 x 2.2 O Método de Pontos Interiores para Programação Linear . . . . . . . . 23 2.2.1 Método primal-dual . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.2.2 O passo central . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.2.3 Métodos primais . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Método de Pontos Interiores Aplicado a Programação Não Linear . . . 30 2.3.1 Um método primal-dual barreira-logarı́tmica (PDBL) . . . . . . 31 2.3.1.1 Função de mérito . . . . . . . . . . . . . . . . . . . . . 33 2.3.1.2 Aplicando o Método de Newton . . . . . . . . . . . . . 34 2.3.1.3 Seleção do parâmetros β e µ . . . . . . . . . . . . . . . 36 Um método primal-dual (PD) . . . . . . . . . . . . . . . . . . . 39 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.3 2.3.2 3 Método de Pontos Interiores Aplicado ao Problema Job-Shop 3.1 3.2 44 Análise do Modelo de Seqüenciamento Job-Shop Adotado . . . . . . . . 45 3.1.1 Análise do Espaço de Busca . . . . . . . . . . . . . . . . . . . . 46 3.1.2 Análise da Hessiana do Lagrangeano . . . . . . . . . . . . . . . 49 Método de Pontos Interiores e o Seqüenciamento Job-Shop . . . . . . . 53 3.2.1 Definições iniciais e funções de mérito . . . . . . . . . . . . . . 54 3.2.2 Mudança da matriz normal N (t, s, y) . . . . . . . . . . . . . . . 56 3.2.3 Um algoritmo de pontos interiores aplicado ao seqüenciamento job-shop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.2.3.1 Ponto de partida e parâmetros iniciais . . . . . . . . . 63 3.2.3.2 Encontrando as direções de busca . . . . . . . . . . . . 66 3.2.3.3 Definindo o tamanho de passo . . . . . . . . . . . . . . 66 Análise de Convergência . . . . . . . . . . . . . . . . . . . . . . . . . . 69 3.3.1 Condições para a convergência global do problema de job-shop . 69 3.3.2 Prova de Convergência . . . . . . . . . . . . . . . . . . . . . . . 70 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.3 Conclusão Geral 82 Referências Bibliográficas 85 A Tópicos de Programação Não-Linear 91 xi A.1 Tipos de Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 A.2 Condições de Otimalidade para Problemas com Restrições . . . . . . . 92 A.3 Regra de Armijo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 A.4 Função de mérito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 B Algoritmos Sugestivos 97 B.1 Algoritmo para ajuste da matriz Normal Nβ . . . . . . . . . . . . . . . 97 B.2 Algoritmo sugestivo de MPI . . . . . . . . . . . . . . . . . . . . . . . . 98 Lista de Figuras 1.1 Grafo potencial-tarefa representando problema-exemplo 1 de job-shop. . 1.2 A representação de uma seleção completa acı́clica para o problema-exemplo de job-shop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 3.2 9 A representação de duas soluções para o problema exemplo 1 no diagrama de Gantt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 8 9 Gráfico que representa a região de busca referente a uma restrição disjuntiva . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Gráfico da função que representa uma restrição disjuntiva 47 . . . . . . . Lista de Tabelas 1.1 Dados do problema-exemplo 1 de job-shop. . . . . . . . . . . . . . . . . 7 3.1 Dados do problema-exemplo 2 de job-shop. . . . . . . . . . . . . . . . . 48 3.2 Dados do problema-exemplo 3 de job-shop. . . . . . . . . . . . . . . . . 50 3.3 Dados do problema-exemplo 2 de job-shop. . . . . . . . . . . . . . . . . 63 3.4 Análise ponto inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.5 Análise dos parâmetros para definição das variáveis de excesso e variáveis 3.6 duais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Exemplo de Aplicação do MPI ao problema de Job-Shop 68 . . . . . . . . Introdução Geral O mercado atual possui uma tendência a consumir uma variedade grande de produtos, com uma vida útil reduzida e com custo o mais baixo possı́vel Jain e Meeran [29]. Atender a estas necessidades requer processos mais complexos. É preciso buscar maneiras de economizar em cada detalhe com a finalidade de obter custos competitivos. Neste contexto, o problema do seqüenciamento de tarefas é freqüente em indústrias e empresas de um modo geral, que buscam reduzir seu custo operacional e alcançando uma maior produtividade. Os problemas de seqüenciamento são essencialmente de otimização restritos que, num contexto de produção, envolvem descobrir uma seqüência para alocação de recursos limitados com a finalidade de atender determinado objetivo. Trataremos neste trabalho de um tipo particular de seqüenciamento em fábrica conhecido por problema de job-shop. Apesar da grande relevância prática de problemas de job-shop, há caracterı́sticas teóricas particularmente importantes a serem consideradas. A primeira, diz respeito a sua complexidade computacional, sendo classificado como um problema NPdifı́cil (Lenstra e Rinnoy Kan [35], Johnson [30]). A segunda, refere-se a seu espaço de busca de soluções não conexo, despertando assim, o interesse como problema de programação matemática dada a maior dificuldade na busca de solução por um caminho contı́nuo para este tipo de problema. Estas duas caracterı́sticas agregadas fazem do problema de job-shop um particular desafio tanto do ponto de vista computacional como do ponto de vista de análise matemática. Estamos interessados numa modelagem matemática que possa tratar de forma Introdução Geral 2 direta a não convexidade do problema em questão. Para tanto, tomamos um problema de job-shop com caracterı́sticas especı́ficas e adotaremos uma modelagem matemática contı́nua de programação não linear conforme proposta de E. Pinson [42]. Com esta modelagem estamos diante de um modelo matemático de programação não linear e não convexo. Este modelo possui ainda caracterı́sticas particulares que o tornarão ainda mais desafiador. Diante desses desafios, encontramos no Método de Pontos Interiores (MPI) um aliado poderoso na busca de solução para o problema de job-shop em questão. O MPI tem sido utilizado com sucesso na resolução de problemas de programação não linear e não convexos, conforme inúmeras pesquisas encontradas dentre os quais citamos os trabalhos de El Bakry et al [17], Granville [27] e Vanderbei e Shanno [56]. Isto nos levou a buscar uma análise mais acurada das caracterı́sticas matemáticas do problema de job-shop buscando garantias de convergência para soluções que minimizem o tempo de seqüenciamento desejado. Nosso trabalho está organizado da seguinte forma: No primeiro capı́tulo apresentamos uma visão geral do problema de job-shop descrevendo suas principais caracterı́sticas e ressaltando aquelas adotadas em nossa análise. Também, descrevemos duas formas particulares de modelagem matemática, além de discutir métodos usados na resolução desse problema. O MPI é o objeto de nossa atenção no segundo capı́tulo. Partimos de uma breve visão histórica e seguimos apresentando algumas dentre as inúmeras possibilidades de aplicação deste método que tanto tem despertado o interesse de pesquisadores. Concluı́mos esta exposição apresentando o método de pontos interiores aplicável a modelos de programação linear e não-linear. Os capı́tulos anteriores fornecem subsı́dios para as análises realizadas no terceiro capı́tulo onde verificamos com detalhes o modelo matemático adotado para o job-shop em questão. Finalizamos este capı́tulo com uma análise de convergência para o método proposto para a resolução do problema de job-shop. Capı́tulo 1 O Problema de Seqüenciamento Job-Shop O problema de seqüenciamento do tipo job-shop é o mais geral dos problemas de seqüenciamento clássico conforme Jain e Meeran [29]. Este possui um espaço de busca irregular e caracterı́sticas computacionais capazes de fornecer idéias e informações na busca de algoritmos referentes a outras aplicações práticas. Além disto, o job-shop é um problema combinatório de complexidade computacional classificado como NP-difı́cil (Johnson [30], Zwaneveld et al. [59], Strusevich [52]) e sendo considerado um dos mais complexos membros desta classe (Yamada e Nakano [58]). Uma indicação da complexidade envolvida na busca de solução de um problema de job-shop pode dado por um problema proposto em 1963 por Muth e Thompson [40] que consiste no planejamento de 10 tarefas em 10 máquinas, cuja solução ótima foi provada somente em 1987, por Carlier e Pinson [12]. O objetivo num problema de seqüenciamento job-shop é a realização de determinadas tarefas que podem ser interligadas por restrições de sucessão ou restrições de localização no tempo. Para execução destas tarefas são necessários certos recursos (máquinas, mão de obra), os quais introduzem restrições disjuntivas no problema. Os recursos disjuntivos acrescentam restrições não lineares, formando um espaço de busca não-convexo. Problemas de Fábrica 4 Apresentamos, neste capı́tulo, as caracterı́sticas básicas referente ao seqüenciamento job-shop já restrito às caracterı́sticas a que nos propomos estudar. Analisamos, em seguida, alguns modelos matemáticos e métodos de resolução comumente usados. 1.1 Problemas de Fábrica Problemas de fábrica são problemas onde se pretende seqüenciar a execução das operações necessárias à confecção de determinados produtos que passam por máquinas distintas ou não (Alves [3]) com o objetivo de minimizar o tempo de produção. Neste caso, as máquinas constituem os recursos a serem compartilhados e os serviços (jobs) são as operações realizadas na produção de cada item. Uma máquina pode realizar apenas uma operação de cada vez. Desta forma, a execução de operações nas máquinas devem ser planejadas a fim de evitar a sobreposição numa mesma máquina num dado instante. O seqüenciamento dos problemas de fábrica resulta geralmente na procura de seqüências de operações sobre as máquinas. Podemos considerar problemas de fábrica em que as operações podem ser realizadas em qualquer máquina (fábrica com máquinas paralelas), casos onde todas as operações são realizadas numa única máquina, ou ainda, os casos em que uma operação só pode ser realizada numa determinada máquina (fábrica com máquinas especializadas). Dentre os problemas de fábrica com máquinas especializadas podemos distinguir os seguintes casos principais: • problema de open-shop - quando as operações elementares são independentes, ou seja, a ordem de execução das operações de um mesmo trabalho é indiferente. • problema de flow-shop - quando as operações elementares dos trabalhos são ligadas por uma mesma ordem total, ou seja, todos os produtos seguem um percurso unidirecional. • problema de job-shop - quando as operações de um trabalho são ligadas por uma ordem total, não necessariamente idêntica para todos os trabalhos. O Problema de Seqüenciamento Job-Shop 5 Na prática pode ser que nem todos os produtos estejam disponı́veis para serem processados no instante inicial. Neste caso, os produtos possuem tempos de partida que definem a sua data de chegada ao chão da fábrica. Os tempos de partida dos produtos são eventos que não podem ser previstos, portanto seus requisitos de processamento também não podem ser conhecidos com antecedência. Neste caso o seqüenciamento de tarefas torna-se um problema não determinı́stico que deve ser realizado em um perı́odo de tempo totalmente aberto, sendo definido como um problema dinâmico. Podemos considerar também o caso em que, uma vez iniciado o processo de produção, os recursos utilizados por cada atividade não podem mais ser alterados até que todos os produtos estejam concluı́dos. Nesse sistema ideal, todos os recursos estão sempre disponı́veis no inı́cio do perı́odo de seqüenciamento, e não existe a possibilidade de interrupção do processo ora iniciado. Problemas com estas caracterı́sticas são conhecidos como problemas estáticos, e, apesar de serem pouco prováveis em situações reais, o seu estudo é de fundamental importância para o desenvolvimento de técnicas eficazes para a solução de problemas dinâmicos. 1.2 O Problema de Seqüenciamento Job-Shop Neste trabalho trataremos o problema de job-shop de um ponto de vista industrial. Teremos como recurso básico a utilização de máquinas capazes de executar apenas uma tarefa de cada vez, sendo por este motivo, consideradas como recursos disjuntivos. Geralmente, chama-se a confecção de certo produto, de trabalho (job). As operações de um mesmo trabalho são organizadas em seqüências conhecidas por gama operatória. Podemos classificar o problema a que nos propomos lidar como um problema de job-shop estático e determinı́stico com máquinas especializadas, pois estaremos supondo que todos as informações sejam conhecidas antecipadamente (estático) e os dados perfeitamente determinados (determinı́stico). As máquinas são consideradas especializadas pois cada produto possui uma lista de operações com uma seqüência pré-definida. Estaremos admitindo que as máquinas são independentes umas das outras, O Problema de Seqüenciamento Job-Shop 6 estando disponı́veis todo o perı́odo de atividade, mas não podendo executar mais de uma tarefa ao mesmo tempo. Consideraremos também que não existe prioridade na execução de determinada tarefa; assim não será possı́vel interromper a execução de uma operação para realização de outra. Quanto aos produtos, consideraremos produtos independentes sem prioridades na execução de suas operações. Cada produto deverá ser processado em dada máquina uma única vez e eles deverão respeitar uma ordem de execução dentro da gama operatória. Além disto, consideraremos que os produtos chegam na unidade produtiva num mesmo instante. Estudaremos casos de unidades fabris contendo m e máquinas distintas e p produtos. Cada produto Pi é constituı́do de pi operações elementares. Desta forma, numa p X fábrica serão executadas p0 = pi operações, cada uma delas sendo realizada em uma máquina diferente Mk . i=1 O número total de operações que é executada em uma máquina Mk será denotado por m e k . A duração de execução de uma operação Oj em Mk será chamada de tempo operatório e denotada por dj . Durante este tempo, a máquina estará ocupada e todas as outras operações nesta máquina terão que aguardar para serem processadas. Assim, toda operação em uma máquina terá seu tempo de inı́cio de processamento denotado por tj que depende do instante de finalização da operação precedente nesta máquina. O instante de término de execução de uma operação Oj será denotado por Cj , sendo Cj = tj + dj . Os problemas de seqüenciamento job-shop, que denotaremos por Πj são constituı́dos por: • P = {Pi |i = 1, ..., p} - o conjunto de p produtos (ou trabalhos) Pi . • M = {Mk |k = 1, ..., m} e - o conjunto de m e máquinas Mk . • O = {Oj |j = 1, ..., p0 } - o conjunto de todas as operações Oj . Para tornar mais claras as definições aqui vistas, apresentaremos um exemplo de um problema de job-shop (problema-exemplo 1) onde os dados estão na tabela 1.1. O Problema de Seqüenciamento Job-Shop p=4 e p1 = p2 = p3 = 3, 7 m e =3 p0 = 11 p4 = 2 m e1 = m e 2 = 3, 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 m e3 = 2 Tabela 1.1: Dados do problema-exemplo 1 de job-shop. 1.2.1 Modelagem por grafos disjuntivos Os problemas de job-shop também podem ser descritos através de uma mode- lagem por grafos conforme proposto por Balas et al. [1]. Consideremos então o grafo disjuntivo G = (V, C ∪ D), onde: • V é um conjunto de nós que representam as operações Oj de cada produto unido a duas operações fictı́cias , fonte (O0 ) e sorvedouro (Of im ). • C é o conjunto de arcos conjuntivos que representa a seqüência tecnológica das operações dentro de um mesmo produto, ou seja, a ordem em que as operações Oj de um mesmo produto pi devem ser processadas. Cada arco é ponderado de acordo com o tempo de execução da operação que o origina (Oj ). • D é o conjunto dos arcos disjuntivos que representam as restrições de capacidade das máquinas, cada arco é ponderado com o tempo de execução de sua operção respectiva, existem portanto pares de arcos ((Ou → Ov ), (Ov → Ou )) que devem ser realizadas na mesma máquina Mk . Desta forma os problemas de seqüenciamento job-shop podem ser vistos como de definição da ordem entre todas as operações que devem ser processadas na mesma O Problema de Seqüenciamento Job-Shop 8 máquina, isto é, determinar a precedência entre estas operações. No modelo de grafo disjuntivo isto é realizado definindo direções para todos os arcos disjuntivos. Assim, temos que uma seleção é um conjunto de arcos direcionados selecionados de arcos disjuntivos. Por definição, uma seleção é completa se todas as disjunções forem selecionadas e esta seleção será consistente se o grafo direcionado resultante for acı́clico. 3 3 1 O1 O2 O3 3 2 3 O4 O5 O6 0 O0 0 1 4 4 O7 O8 O9 3 4 2 O11 O10 MAQUINA 1 ´ MAQUINA ´ 2 Ofin O12 MAQUINA ´ 3 Figura 1.1: Grafo potencial-tarefa representando problema-exemplo 1 de job-shop. Na figura 1.1 apresentamos o grafo para o problema-exemplo 1. Nele é possı́vel ver o conjunto de arcos conjuntivos C representados pelas flechas contı́nuas e o conjunto de arcos disjuntivos D representados pelas flechas pontilhadas. Cada operação é representada por um nó e os arcos que partem de cada nó são ponderados pelo duração da operação correspondente. Neste exemplo todos os produtos são lançados no instante 0. Uma seleção completa com a definição de todas as direções no arcos disjuntivos é representada pela figura 1.2 1.2.2 Representação de soluções pelo diagrama de Gantt Uma forma útil para visualizar uma solução encontrada para um problema de seqüenciamento job-shop é o diagrama de Gantt. Este diagrama representa a ocupação das máquinas em função do tempo. A construção deste diagrama é feita associando a cada máquina Mk uma barra horizontal onde as operações são representadas por O Problema de Seqüenciamento Job-Shop 9 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 ´ 2 ´ MAQUINA 1 Ofin O12 MAQUINA ´ 3 Figura 1.2: A representação de uma seleção completa acı́clica para o problema-exemplo de job-shop. retângulos localizados nesta barra. Os retângulos possuem o comprimento proporcional à duração da operação que representa e a posição que ocupa na barra é definida pelo instante de inı́cio da respectiva operação. A figura 1.3 apresenta o diagrama de Gantt para o problema-exemplo 1 de job-shop onde é possı́vel constatar a superioridade da segunda solução (S2 ) com tempo total de produção igual a 13 unidades de tempo em relação à primeira (S1 ) com tempo total de produção igual a 33 unidades de tempo. 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 1.3: A representação de duas soluções para o problema exemplo 1 no diagrama de Gantt Formulação Matemática para o Job-Shop 1.3 10 Formulação Matemática para o Job-Shop As restrições disjuntivas introduzem um espaço de busca não convexo para seqüenciamento job-shop. A linearização destas restrições pode ser feita acrescentandose variáveis binárias na formulação do problema, obtendo-se um modelo inteiro-misto. O mesmo problema também pode ser modelado de forma contı́nua como um problema de programação não linear. Apresentaremos a descrição de uma proposta de formulação matemática de cada tipo além de critérios de otimização que podem ser considerados. 1.3.1 Critérios de otimização O objetivo a ser alcançado num problema de seqüenciamento job-shop aplicado ao chão de fábrica é otimizar o tempo total de produção. Há vários critérios que podem ser utilizados na otimização de tais problemas (Ramos [44]). Um critério de otimização comumente usado é a minimização da duração total do seqüenciamento denominado makespan e denotado por Cmax , sendo: Cmax = max {Ci } 1≤j≤p onde Ci é o momento de término de execução de um produto Pi , ou seja, Ci é momento do término de execução da última operação referente a esse produto. Uma outra forma igualmente útil de avaliar o tempo de produção total é pela soma de todos os tempos de inı́cio de todas as n0 operações tj . Esta forma apresenta como critério de otimização uma função linear definida por: f (t) = p0 X tj (1.1) j=1 Existe ainda uma diversidade grande de critérios empregados na otimização de um problema de job-shop. Uma descrição destes critérios pode ser encontrada no trabalho de Ramos [44]. Neste trabalho estaremos utilizando como critério de otimização a soma dos tempos de inı́cio das operações conforme função (1.1) pela facilidade que ela oferece à análise geral do problema de job-shop. Formulação Matemática para o Job-Shop 1.3.2 11 Modelo de programação linear com variáveis binárias Uma forma comumente encontrada para tratar as restrições disjuntivas é o uso de variáveis binárias. Uma das propostas de modelagem desta natureza é a feita por Manne e citado por Thompson, et al [55] que define uma nova variável binária para cada par ordenado de operações utilizando a mesma máquina. Esta variável em 0-1 é denotada por yuv , tal que: yuv 1, = 0, se Ov precede Ou sobre Mk se Ou precede Ov sobre Mk . Este modelo também utiliza um limite superior B para duração total do seqüenciamento. Este limite pode ser, por exemplo, a soma de todos os tempos operatórios das operações do problema: B= p0 X dj . (1.2) j=1; As restrições do problema podem ser expressas pelas equações: h tj+1 ≥ tj + dj , (1.3) ∀j ∈ C h h ∀(u, v) ∈ D (1.4) tu ≥ tv + dv − B(1 − yuv ), ∀(v, u) ∈ D (1.5) tv ≥ tu + du − B(yuv ), As restrições (1.3) representam as restrições da gama operatória. As restrições (1.4) e (1.5) representam as restrições disjuntivas. Neste modelo, para cada escolha de um par de arcos disjuntivos, somente uma das restrições (1.4) e (1.5) é ativada. Assim, quando se escolher fazer Ou antes de Ov (yuv vale 0) a restrição (1.5) é então inativa p0 X já que tu ≥ tv + dv − B, e da forma em que B foi definida (como dj ) o segundo j=1 termo desta inequação será sempre negativo e, como consideramos todos os tempos de inı́cio sendo positivos, esta restrição fica inutilizada. Por outro lado, a restrição (1.4) é ativada já que torna-se tv ≥ tu + du . (1.6) Formulação Matemática para o Job-Shop 12 Neste caso o makespan pode facilmente ser obtido acrescentando-se uma nova variável (tf im ) para representar o momento de término de toda a produção e o seguinte conjunto de restrições: h tf im ≥ tj + dj , ∀j ∈ O Dessa forma um problema de seqüenciamento job-shop Πj pode ser escrito como: M in. f (t) = tf im S.a. tj + dj − tj+1 ≤ 0 ∀(j, j + 1) ∈ C tu + du − B(yuv ) ≤ tv ∀(u, v) ∈ D tv + dv − B(1 − yuv ) ≤ tu ∀(v, u) ∈ D tj + dj ≤ tf im ∀j ∈ O tj ≥ 0 ∀j ∈ O Obtemos assim um problema de programação inteira-mista. A principal dificuldade na resolução desse modelo refere-se às variáveis inteiras (binárias). Uma forma comum na resolução desse modelo consiste na junção de um método de Branch-andBound com o método simplex. 1.3.3 Modelo de programação não-linear O modelo proposto por Pinson [42] agrupa em uma única equação quadrática as duas equações disjuntivas para cada par de operação numa mesma máquina Mk . As restrições deste modelo são representadas pelas equações: tj + dj ≤ tj+1 , ∀j ∈ C (tv − tu + dv )(tu − tv + du ) ≤ 0, ∀(u, v) ∈ D (1.7) (1.8) As restrições (1.7) representam as restrições da gama operatória. As restrições (1.8) representam as restrições disjuntivas das máquinas. Essas restrições disjuntivas introduzem um espaço de busca contı́nuo mas não conexo. Acrescentando a este conjunto de restrições o critério de otimalidade expresso pela função (1.1) obtemos o seguinte problema de programação não-linear para um problema de seqüenciamento job-shop Métodos de Resolução para o Job-Shop M in. 13 n0 X f (t) = tj j=1 S.a. tj + dj − tj+1 ≤ 0 ∀j ∈ C (1.9) (tv − tu + dv )(tu − tv + du ) ≤ 0 ∀(u, v) ∈ D tj ≥ 0 ∀j ∈ O Modelos de programação não linear e não convexo têm sido evitados em função das dificuldades encontradas na busca de solução por métodos tradicionais [57]. O método de pontos interiores é uma ferramenta capaz de superar este problema conforme apresentado na seção 2.3. 1.4 Métodos de Resolução para o Job-Shop A solução de um problema de seqüenciamento job-shop pode ser obtida por métodos exatos, mas devido a sua complexidade (NP-difı́cil) em muitos casos só é viável o uso de métodos que buscam soluções aproximadas para a obtenção de boas soluções em tempo útil para fundamentar as decisões a tomar no dia-a-dia na indústria. Métodos de decomposição são também aplicáveis a problemas de job-shop na medida em que reduzem a dimensão do problema a ser resolvido. 1.4.1 Métodos exatos Métodos de solução exatos são aqueles que pretendem obter a solução ótima para um problema no menor tempo possı́vel. Entre os métodos de solução exata aplicáveis a problemas de otimização combinatória o mais usado é o método de partição e avaliação sucessivas (Branch and Bound). Encontramos diversos trabalhos nesta direção dentre os quais podemos destacar os trabalhos de Carlier e Pinson ([12], [13]). As técnicas de programação matemáticas também são métodos exatos, mas que possuem como desvantagem principal o alto custo computational inviabilizando o Métodos de Resolução para o Job-Shop 14 seu uso sistemático em casos como o do seqüenciamento job-shop devido a sua complexidade (Np-Difı́cil). Nesta direção, temos os trabalhos de Schall et al ([51], [48], [49], [50]) que utilizam técnicas de programação matemática de forma hı́brida com métodos heurı́sticos aplicáveis ao seqüenciamento job-shop modelado de forma linear com o uso de variáveis binárias. Particularmente, usa técnicas de programação matemática tendo o método de pontos interiores (MPI) como principal ferramenta de resolução. As heurı́sticas utilizadas de forma hı́brida com o (MPI) nestes trabalhos são: simulated annealing e algoritmos genéticos. Tais algoritmos são descritos brevemente na seção seguinte. 1.4.2 Métodos heurı́sticos Os métodos de solução aproximada (heurı́sticas) permitem obter planos opera- cionais aceitáveis em tempo útil, mas não garantem a obtenção de uma solução ótima. Dentre os diversos métodos aplicáveis ao job-shop, os mais utilizados são os métodos de lista devido a sua simplicidade. Estes métodos são baseados em regras de despacho prioritário ou algoritmos de lista (Blazewicz et al.[10], Blazewicz [11]) onde o plano operacional é construı́do através de uma seqüência de decisões baseadas no que localmente parece ser ótimo. Alguns algoritmos conhecidos são: • SPT(Shortest Processing Time) - Seleciona a operação com menor tempo de processamento. • EDD (Earliest Due-Date) - Seleciona a operação que pertence à tarefa cuja data de entrega é a mais próxima. • FIFO (First In First Out) - Seleciona a operação na ordem crescente de chegada nas máquinas. • MWKR (Most WorK Remaining) - Seleciona a operação que pertence ao produto que tem o tempo de processamento restante maior. • MOPNR (Most Operations Remaining) - Seleciona a operação que pertence ao produto que possui o maior número de operações ainda por processar. Métodos de Resolução para o Job-Shop 15 O método heurı́stico conhecido por Simulated Annealing faz uma analogia entre a otimização combinatória e a evolução do equilı́brio térmico dos sólidos. No caso particular do job-shop, busca-se um procedimento iterativo, onde a solução do problema desempenha o papel do estado energético do sólido. Como mencionado na seção anterior Schall et al ([50], [51]) propõem uma hibridação do simulated annealing juntamente com método de pontos interiores para a resolução de problemas de job-shop. Um outro método heurı́stico utilizado é denominado como Shifting Bottleneck e foi desenvolvido por Adams et al [1] e consiste em um método iterativo baseado no grafo disjuntivo. Em cada iteração é resolvido um problema relaxado de planejamento em uma única máquina com datas de disponibilidade e de entrega, de modo a seqüenciar as máquinas que formam o problema de job-shop. Assim as máquinas são seqüenciadas uma de cada vez, seqüencialmente. Além destes métodos aqui mencionados, vale ressaltar trabalhos realizados com métodos de busca adaptativos como os algoritmos genéticos (AG) . Estes algoritmos têm sido aplicados com sucesso a problemas combinatórios. Seu modelo é constituı́do por uma população de indivı́duos que são soluções potenciais. Os AG combinam o intercâmbio de informações e a sobrevivência dos melhores indivı́duos, representados por cadeias estruturadas. Dentre os diversos trabalhos nesta área podemos citar os trabalhos de Goldberg [25], Yamada e Nakano [58] que são aplicados a problemas de seqüenciamento job-shop. 1.4.3 Métodos de decomposição O princı́pio geral destes métodos é o de substituir a resolução de um problema inicial complexo pela resolução de vários subproblemas cuja resolução seja mais fácil. A conseqüente redução da dimensão é particularmente importante quando o problema tem uma complexidade elevada como o caso do job-shop. Dentre os métodos de decomposição aplicados ao job-shop temos os trabalhos de Fischer ([19], [20]) que utiliza os multiplicadores de Lagrange para formar o dual das restrições de máquina. Neste caso, os subproblemas eram constituı́dos pelas res- Conclusão 16 trições de produto (precedência), e o problema mestre fica encarregado das restrições de máquina obtendo os multiplicadores de Lagrange de modo a manter a factibilidade. Num outro trabalho, Fischer [21] propõe uma metodologia que realiza um procedimento próximo da Relaxação Lagrangeana clássica. Métodos de decomposição espacial são aplicados a problemas de job-shop de grande dimensão reagrupando máquinas em células de produção e os produtos em famı́lias de forma que produtos de uma mesma famı́lia sejam executados por máquinas de uma célula principal e, excepcionalmente, sejam executados em máquinas de outras células. Estas operações que são executadas em outras células são conhecidas como elementos residuais. Esta filosofia é conhecida como tecnologia de grupos (Kusiak [33]). Recentemente temos a proposta de Alves [3] que utiliza a tecnologia de grupos para particionar o problema de job-shop e, em seguida, utiliza a técnica da relaxação lagrangeana para resolver os subproblemas coordenados por um problema mestre. Neste caso os subproblemas se aproximam do problema original já que as restrições a serem relaxadas são apenas as referentes ao elementos residuais. Assim, a factibilidade das soluções locais é garantida de forma mais eficiente. Com o objetivo de tornar a convergência nesta metodologia mais rápida, Ramos [44] propõe ajustes de alguns parâmetros no método do subgradiente quando utilizado para resolver o problema mestre. Ainda há que ressaltar o trabalho de Santana [46] que propõe a decomposição de um problema de job-shop usando o método de Dantzig-Wolfe. Conclusão Neste capı́tulo apresentamos um importante problema de fábrica conhecido como problema de seqüenciamento job-shop. Verificamos algumas caracterı́sticas especı́ficas do problema de job-shop a que nos propomos a trabalhar (§1.2), seguido de breve análise de duas particulares formulações matemáticas (§1.3). Conclusão 17 Neste trabalho estaremos adotando um modelo contı́nuo (§1.3.3) devido à boa performance apresentada pelo método de pontos interiores na resolução de problemas de programação não linear, como é o caso. Vamos nos deter agora a uma análise deste método e suas principais aplicações. A seguir, no capı́tulo 3, veremos que o problema de job-shop, se constitui num interessante desafio para análise matemática. Capı́tulo 2 Método de Pontos Interiores O método de pontos interiores (MPI) tem sido em programação matemática uma das mais interessantes áreas de pesquisa em otimização desde o desenvolvimento do método simplex conforme Freund e Mizuno[22]. Diversas formulações de MPI foram propostas inicialmente tendo em mente problemas de programação linear (Karmarkar [31], Mehrotra [38], Renegar [45], Wright [57]). Motivados pelo sucesso do MPI para programação linear tiveram inı́cio as investigações de possı́veis extensões para problemas de programação não linear (Akrotirianakis e Rustem [4],El Bakry, et al. [17], Granville [27], Vanderbei e Shanno [56]). Neste capı́tulo fazemos uma breve descrição da relevância do método de pontos interiores no âmbito da busca de solução de problemas de otimização. Apresentamos inicialmente uma breve visão histórica do MPI acompanhado de diversas possibilidades de aplicação às mais variadas áreas. Seguimos apresentando uma descrição sucinta do MPI aplicado a problemas de programação linear. Finalmente, concluı́mos com a apresentação de duas versões do MPI aplicado a problemas gerais de programação não linear. Método de Pontos Interiores 2.1 2.1.1 19 O Método de Pontos Interiores: Ontem e Hoje Breve histórico No ano de 1984 N. Karmarkar [31] apresentou à comunidade cientı́fica um novo algoritmo para resolver problemas de programação linear em tempo polinomial. Uma caracterı́stica de tal algoritmo é o fato de chegar a uma solução ótima para o problema caminhando através de pontos interiores da região viável ao contrário do algoritmo simplex, que a atinge gerando uma seqüência de pontos extremos adjacentes. O artigo de Karmarkar [31], e trabalhos anteriores reconhecidos posteriormente, deram inı́cio a um novo campo chamado de método de pontos interiores. Nos primeiros anos após o artigo inicial de Karmarkar, os trabalhos em programação linear usando pontos interiores centravam suas atenções em algoritmos que lidavam com o problema primal, possuindo uma implementação mais amena que o método original e tendo melhores limites de complexidade. Neste perı́odo é notável a contribuição do algoritmo de Renegar [45], que usou um limite superior para a função objetivo obtendo sucessivamente subconjuntos do conjunto factı́vel, cada um contendo uma solução, e usando o método de Newton para analisar o centro deste subconjunto primal ótimo. Uma nova era foi inaugurada com o artigo de Megiddo [37], que descreve uma estrutura para um algoritmo primal-dual. O ponto de vista primal-dual mostrou ser extremamente produtivo. Isto levou a novos algoritmos com interessantes propostas teóricas, formando uma base para algoritmos melhores, e extensões para programação convexa e complementariedade linear. Em 1989, Mehrotra [38] descreve um algoritmo prático para programação linear que se tornou a base para a maioria dos softwares existentes; seu trabalho é publicado em 1992. Os trabalhos em torno do método de pontos interiores tiveram um maior ı́mpeto após o reconhecimento de soluções de problemas NP-difı́cil obtidas em tempo polinomial. Os métodos que têm sido propostos possuem vários ingredientes, incluindo passos do primal-dual, funções com barreira e escalonamento de regiões de confiança. Método de Pontos Interiores 2.1.2 20 Aplicações do método de pontos interiores Do ponto de vista teórico várias pesquisas têm sido conduzidas quanto a melho- ria da eficiência computacional para programação linear (LP), programações quadrática (QP), problemas de complementaridade lineares (LCP) e algumas classes de problemas de programações convexos. Outros trabalhos envolvendo método de pontos interiores (MPI) estão sendo desenvolvidos para programações semi-definidas, os quais possuem uma grande variedade de aplicações em áreas de controle e otimização estrutural. Programação semi-definida, também tem se mostrado ser uma área de grande impacto (Potra e Wright [43]). É possı́vel provar a convergência super-linear de algoritmos primal-dual assumindo a independência linear das restrições ativas nas soluções (Potra e Wright [43]). Esta observação incitou pesquisas na melhoria das propriedades de convergência de outros algoritmos, notavelmente programação quadrática. Aplicações à programação quadrática apresentam-se como uma área promissora devido a habilidade superior que a aproximação por pontos interiores possui ao explorar a estrutura deste problema. Como exemplo tem-se, dentre outros, o trabalho de Castro [15] que propõe o MPI para resolução de problemas de multifluxo de produtos (MFP) com uma formulação quadrática e verifica um melhor desempenho que o mesmo método aplicado à modelagem linear do mesmo problema. O MPI tem permitido obter resultados eficientes para problemas de programação não linear, o que tem levado muitos pesquisadores a se dedicarem a esta área (Akrotirianakis e Rustem [4], El Bakry et al. [17], Granville [27], Vanderbei e Shanno [56]). Em particular, existe um grande número de trabalhos que aplicam o MPI na resolução de problemas de fluxo de potência que é um problema de programação não linear, não convexo e de grande porte. Dentre estes, temos os de Sousa e Costa que, num primeiro trabalho, apresentam um problema de fluxo de potência ótima resolvido via MPI primal-dual com barreira logarı́tmica (Sousa e Costa [53]) e, em outro trabalho (Sousa e Costa [54]), é proposta a determinação das barras para alocações de reativos a partir de uma análise dos multiplicadores de Lagrange associados às restrições de igualdade de potência reativa, resultantes de um programa de fluxo de potência ótimo Método de Pontos Interiores 21 resolvido pelo método apresentado no artigo anterior. Castronuovo et al [16] apresenta um método baseado na centralização da trajetória da solução ótima onde a distância entre a solução corrente e o passo central é monitorada. Problemas de programação inteira também podem ser resolvidos com o auxı́lio de MPI. Nesta linha temos uma série de trabalhos de Schall et al ([51], [47], [48], [49], [50]) que estuda a resolução de problemas lineares inteiros fazendo uma hibridização de métodos exatos (MPI) com outras heurı́sticas tais como: algoritmo genético , simulated annealing e scatter search. Em particular, em trabalho publicado em 1999 (Schall et al [51]) é apresentada uma comparação dos métodos discutidos nos artigos anteriores bem como uma proposta de aplicação a problemas de seqüenciamento job-shop. Outra aplicação freqüente é o uso de MPI na resolução de problemas de fluxos em redes de multi-produtos (MFP). Os fluxos em redes de multi-produtos podem ser usados em diversos campos, como telecomunicações, transportes e logı́stica. Neste tipo de problema diversos produtos devem ser transportados de um conjunto de nós de produção para um conjunto de nós de consumo compartilhando a mesma rede de transporte. Este tipo de problema normalmente tem um grande número de variáveis. Um trabalho interessante de Azevedo et al [5] propõe a resolução de uma modelagem por grafos explorando os diferentes graus de esparsidade do problema com o uso de MPI . Nesta mesma linha há outros trabalhos como o de Castro [14]. O MPI permanece uma área ativa e frutı́fera de pesquisa. Sobretudo, é possı́vel notar a grande diversidade das aplicações deste método de resolução. 2.1.3 O método de pontos interiores versus método simplex Diversos autores tentaram comparar implementações de algoritmos de pontos interiores com o método simplex, mas não obtiveram tempo de solução competitivo. Com a implementação do método primal apresentado por Karmarkar apresenta-se a primeira evidência computacional de que MPI pode ser comparado em velocidade com o método simplex. A partir daı́, várias implementações de MPI para programação linear foram Método de Pontos Interiores 22 realizadas com resultado superior ao do método simplex, não necessariamente para cada problema individual, mas para um conjunto de problemas. De forma prática, para problemas pequenos o método simplex tem rendimento satisfatório. O MPI justifica-se particularmente em problemas com grande número de variáveis e maior complexidade computacional (Wright [57]). Um exemplo prático onde o MPI possui considerável superioridade sobre o método simplex é no planejamento do tratamento de câncer por radioterapia onde são usados modelos de programação linear. Conforme Barbosa [7] neste caso o desafio matemático consiste em programar a emissão de uma alta dosagem de radiação no tumor, e simultaneamente, minimizar a radiação nas regiões vizinhas compostas por tecido saudável. Na presença de múltiplas soluções o MPI convergirá para aquelas soluções distanciadas dos vértices o que não ocorre com o método simplex. Para este modelo uma solução próxima do vértice pode não ser a mais adequada do ponto de vista médico pelo fato das variáveis de folga estarem no seu limite, significando que em determinadas partes tecido saudável receberá uma dosagem grande de radiação. Uma vantagem adicional do MPI é a possibilidade de trabalhar com pontos infactı́veis durante o processo de otimização, facilitando a identificação de modelos mal formulados (Wright [57]). 2.1.4 Métodos de decomposição e método de pontos interiores Usar a aproximação por ponto interior nos métodos de decomposição parece ser promissor, ainda que não estejam sendo feitos estudos comparativos rigorosos nesta área (Potra e Wright [43]). Nos métodos de decomposição para problemas lineares e convexos de grande porte, como a decomposição de Dantzig-Wolfe, método de pontos interiores tem sido usado para descobrir uma solução para o problema master, ou para obter uma solução aproximada para os subproblemas gerando pontos de teste. Zhao [60] mostra que o algoritmo de pontos interiores com a decomposição Dantzing-Wolfe é globalmente convergente e tem complexidade polinomial. Por sua vez, Gondzio [26] discute os Método de Pontos Interiores 23 resultados quando o método de pontos interiores é usado como meio de resolução de um problema master na aproximação por decomposição e aplica sua metodologia a um problema de multifluxo de produtos de grande porte (5.000 arcos e 10.000 produtos). 2.2 O Método de Pontos Interiores para Programação Linear Apesar de boa parte dos modelos matemáticos atuais serem não lineares, for- mulações de modelos lineares são vantajosas tendo em vista a qualidade dos softwares à disposição e a garantia da convergência para um mı́nimo global. Portanto, entender o método de pontos interiores aplicado a problemas de programação linear permite uma boa visão geral deste método. Consideremos um problema de programação linear formulado na forma padrão: Minimizar cT x Sujeito a A·x = b x (2.1) ≥ 0 onde c e x são vetores do Rn , b é um vetor do Rm e A é uma matriz m×n. Aqui vale ressaltar que estamos considerando pontos interiores aqueles pontos que atendam estritamente as restrições do problema (2.1), ou seja, pontos em que x > 0. Associado com cada problema de programação linear primal existe uma outra programação linear chamada de dual. O dual para (2.1): Maximizar bT λ Sujeito a At · λ + s = c s (2.2) ≥ 0 onde λ é um vetor de Rm e s é um vetor Rn . Nós chamamos as componentes de λ de variáveis do dual enquanto s é o vetor das variáveis de folga. O dual e o primal são relacionados por um importante teorema. Método de Pontos Interiores 24 Teorema 2.1. Considere o vetor x de (2.1) e (λ, s) de (2.2) , então temos que: bT λ ≤ cT x Em outras palavras, o valor da função objetivo do dual é limitado inferiormente pelo valor da função objetivo do primal e o valor da função objetivo do primal é limitado superiormente pelo valor da função objetivo dual. As duas funções objetivo podem ter o mesmo valor, de forma que bλ∗ = cx∗ quando x∗ é solução de (2.1) e (λ∗ , s∗ ) é solução de (2.2). Teorema 2.2. Pelas condições de otimalidade (kkt) sabe-se que o vetor x∗ ∈ Rn é solução de (2.1) se e somente se existem vetores s∗ ∈ Rn e λ∗ ∈ Rm que atendem as seguintes condições (i) At λ + s = c (ii) Ax = b (iii) xi si = 0 i = 1, 2, ..., n, (iv) (x, s) ≥ 0 (2.3) considerando (x, λ, s) = (x∗ , λ∗ , s∗ ). Os vetores λ e s são geralmente chamados de multiplicadores de Lagrange para as restrições Ax = b e x ≥ 0, respectivamente. A condição (iii) implica que para cada ı́ndice i = 1, 2...n uma das componentes xi ou si é nula. Esta condição é conhecida como condição de complementaridade. Examinando as condições (2.3) do ponto de vista do primal e do dual, concluı́mos que: Corolário 2.1. o vetor (x∗ , λ∗ , s∗ ) é solução do sistema (2.3) se e somente se x∗ é solução de (2.1) e (λ∗ , s∗ ) é solução de (2.2). O vetor (x∗ , λ∗ , s∗ ) é chamado de solução primal-dual. Método de Pontos Interiores 2.2.1 25 Método primal-dual Este método encontra a solução primal-dual (x∗ , λ∗ , s∗ ) aplicando uma variação do método de Newton nas três equações das condições de (2.3) e modificando a busca de direções e comprimentos tais que as inequações (x, s) ≥ 0 sejam estritamente satisfeitas em cada iteração. Vamos reapresentar as condições de otimalidade (2.3) de uma forma diferente, considere a função F : R2n+m → R2n+m definida por: At λ + s − c F (x, λ, s) = Ax − b XSe =0 (2.4) (x, s) ≥ 0 X = diag(x1 , x2 , ..., xn ) onde: S = diag(s1 , s2 , ..., sn ) e = (1, 1, ..., 1)t Note que F é linear nos dois primeiros termos (At λ + s − c, Ax − b) e o único termo não linear desta função é o termo XSe. Todos os métodos primal-dual geram em cada iteração pontos (xk , λk , sk ) que satisfazem estritamente os limites de (2.4), ou seja, xk > 0 e sk > 0. Esta propriedade é a origem do termo ponto-interior. Respeitando estes limites o método evita soluções falsas dadas por pontos que satisfazem F (x, λ, s) = 0 mas não (x, s) ≥ 0. Soluções falsas não fornecem nenhuma informação quanto à solução do primal (2.1) ou do dual (2.2), por isto é preferı́vel excluı́-las completamente da região de busca. A maior parte dos métodos de ponto interior requerem que em cada iteração (xk , λk , sk ) seja estritamente factı́vel, ou seja,(xk , λk , sk ) ∈ F 0 , onde: F 0 = {(x, λ, s)|Ax = b, At λ + s = c, (x, s) > 0} Como mencionado, o procedimento para obter uma direção de busca tem sua Método de Pontos Interiores 26 origem no método de Newton que forma um modelo linear para F em torno do ponto corrente e obtém a direção de busca (∆x, ∆λ, ∆s) para a solução do seguinte sistema de equações lineares: ∆x J(x0 , λ0 , s0 ) ∆λ = −F (x0 , λ0 , s0 ) ∆s sendo J o Jacobiano de F . Se o ponto corrente é estritamente factı́vel, o passo de Newton torna-se: O A A 0 S 0 t 0 ∆x 0 ∆λ = 0 −XSe ∆s X I (2.5) Um passo completo nesta direção é usualmente não permitido, já que poderia violar o limite de não negatividade (x, s) ≥ 0. Para evitar esta dificuldade, caminha-se ao longo da direção de Newton (2.5), só que a nova iteração é dada por: (x, λ, s) + α(∆x, ∆λ, ∆s) onde α ∈ (0, 1] Infelizmente quando o ponto corrente está próximo ao limites do espaço de busca só podemos tomar pequenos passos (α << 1) sem violar a condição de (x, s) > 0, por este motivo o método de Newton oferece pouco progresso na busca da solução. É necessário, portanto, fazer algumas mudanças no método de Newton original. 2.2.2 O passo central O passo central C pode ser definido como sendo o arco de pontos (xτ , λτ , sτ ) ∈ F 0 parametrizado por um escalar positivo τ . Cada ponto de C satisfaz as condições abaixo: (i) At λ + s = c (ii) Ax = b (iii) xi si = τ i = 1, 2, ..., n, (iv) (x, s) > 0 (2.6) Método de Pontos Interiores 27 Essas condições diferem das condições KKT (2.3) unicamente pelo termo τ na terceira condição . Esta é a chave para os pontos do arco C, pois cada produto xi si tem o mesmo valor. O passo central, portanto, equilibra o algoritmo primal-dual por prover uma rota que pode ser seguida dentro do conjunto solução. Uma outra forma de definir C é usando a notação de (2.4) e escrever 0 F (xτ , λτ , sτ ) = 0 , (xτ , sτ ) > 0 τe (2.7) A equação (2.7) se aproxima de (2.4) quando τ tende a zero. Se C converge sempre que τ → 0, esta converge para a solução primal-dual da programação linear. O passo central deste modo guia a solução ao longo de uma rota que evita soluções indesejadas fixando todo produto xi si estritamente positivo e decrescendo até zero com alguma taxa. Boa parte dos algoritmos primal-dual fazem passos de Newton em torno de pontos de C para τ > 0 ao invés de um passo de Newton puro para F . Para descrever a inclinação da direção de procura, usa-se um parâmetro central σ ∈ [0, 1] e uma medida de dualidade µ definidos por: n 1X xT s µ= xi s i = n i=1 n que mensuram um valor médio para o produto xi si . A equação genérica para distância torna-se: O A A 0 S 0 t 0 ∆x 0 ∆λ = 0 −XSe + σµe ∆s X I (2.8) A distância (∆x, ∆λ, ∆s) é um passo de Newton para o ponto (xσµ , λσµ , sσµ ) ∈ C, onde todo os produtos (xi si ) são iguais a σµ. Se σ = 1, a equação (2.8) define uma direção central, ou seja, um passo de Newton na direção do ponto (xµ , λµ , sµ ) ∈ C, em que todos os pares de produtos xi si Método de Pontos Interiores 28 são iguais a µ. No outro extremo, o valor de σ = 0 refere-se ao passo de Newton original (2.5). Muitos algoritmos usam valores intermediários de σ no intervalo (0, 1) com a dupla finalidade de reduzir µ e melhorar a centralidade. É possı́vel provar que se F 0 6= ∅ então (2.6) tem solução (xτ , λτ , sτ ) para cada τ > 0. Mais ainda, as componentes x e s desta solução são únicas. Para tanto, considere H0 como a projeção de F 0 no espaço reduzido de vetores (x, s), definido por: H0 = {(x, s)|(x, λ, s) ∈ F 0 para algum λ ∈ <m } e então identifique (xτ , sτ ) como o menor valor de H0 da função barreira definida por j=1 fτ (x, s) = X 1 T x s− log(xj sj ) τ n as componentes x e s são definidas unicamente se a matriz A tem posto completo. A função fτ (x, s) aproxima-se do infinito sempre que (x, s) se aproxima da fronteira de H0 , ou seja, sempre que algum par primal-dual xj sj se aproxima de zero. Acerca de fτ também pode se afirmar (Wright [57]) que: • fτ é estritamente convexa em H0 • fτ é limitada por H0 • Dado τ > 0, e algum número K, todos os pontos (x, s) no plano do conjunto {(x, s) ∈ H0 |fτ (x, s) ≤ K} satisfazem xi ∈ [Ml , Mu ], si ∈ [Ml , Mu ], i = 1, 2, ..., n sendo Ml , Mu números positivos. temos os seguinte teorema apresentado por (Wright [57]): Teorema 2.3. Suponha que F 0 6= ∅, e tome um número positivo τ . Então fτ tem um único mı́nimo local em H0 e as condições para o passo central (2.6) têm solução. O passo central também pode ser definido como uma seqüência de valores mı́nimos de uma função de barreira logarı́tmica para o dual ou para o primal. Na próxima seção ver-se-á o caso de uma função de barreira para o problema primal. Método de Pontos Interiores 2.2.3 29 Métodos primais Algoritmos primais também têm sido incorporados a algoritmos para pro- gramação não linear da mesma forma que algoritmos primal-dual. Um elemento importante na maioria dos algoritmos primais é a aproximação com o uso da função barreira logarı́tmica para (2.1), que é definida como: i=1 X min T c x−τ logxi sujeito a Ax = b, x > 0 x n (2.9) onde τ > 0 é um parâmetro positivo. Note que o domı́nio desta função é o conjunto de pontos estritamente factı́veis para o problema 2.1. Para atender as condições de otimalidade a solução xτ de (2.9) satisfaz as seguintes condições: (i) τ X −1 e + At λ = c (ii) Ax (iv) (x, s) = b (2.10) > 0 para λ ∈ Rm . Podemos definir o vetor s por si = τ , i = 1, 2, ..., n xi estas condições são transformadas nas condições do passo central (2.3). Portanto, o valor mı́nimo xτ do subproblema com barreira logarı́tmica (2.10) é simplesmente a componente x do vetor de passo central (xτ , λτ , sτ ) ∈ C. Quando τ decresce até zero, xτ aproxima-se da solução x∗ do problema de programação linear (2.1). Soluções do problema (2.9) para cada valor de τ pode ser formada, por exemplo, pelo uso do método de Newton. Algoritmos baseados em funções de barreira logarı́tmica não se tornaram populares tanto em programação linear quanto em programação não linear, devido a dificuldade crescente de tornar o parâmetro de barreira τ tender a zero. O interesse neste algoritmo foi reavivado em 1985 quando se notou a relação entre o algoritmo de Karmarkar e algoritmos de barreira logarı́tmica. Método de Pontos Interiores Aplicado a Programação Não Linear 30 Algoritmos de Karmarkar avaliam o progresso na direção ótima através da média de uma função potencial logarı́tmica. Uma variante da função deste algoritmo é T (n + 1)log(c x − Z) − n X logxi i=1 onde Z é um limite inferior para o valor objetivo de (2.1), que pode ser obtido durante as iterações pelo uso de informações do problema dual. Logo após Karmarkar, Renegar [45] desenvolveu um algoritmo que usa o método de Newton em conjunto com uma função logarı́tmica, definida por: T minx − nlog(Z − c x) − n X xi i=1 (2.11) T sujeito a Ax = b, x > 0, c x < Z onde Z é um limite superior para o valor ótimo Z ∗ do objetivo cT x para (2.1). De fato cada solução de (2.11) é um passo primal central. O algoritmo de Renegar seguiu este passo usando o método de Newton para obter soluções aproximadas de (2.11) numa seqüência de valores decrescentes de Z. Ele alcançou um melhor limite de √ complexidade do que o método de Karmarkar [31], requerendo O( nlog1/²) iterações para identificar o ponto primal factı́vel x tal que cT x esteja a uma distância ² do valor objetivo ótimo Z ∗ , para dado ² > 0. Não se tem identificado outro método de pontos interiores com complexidade melhor do que o apresentado por Renegar. Apesar do algoritmo de Karmarkar ter se tornado sinônimo de método de pontos interiores a maior parte dos algoritmos práticos levam em conta a estrutura primal-dual (Wright [57]). 2.3 Método de Pontos Interiores Aplicado a Programação Não Linear O método de pontos interiores tem sido muito utilizado tanto em programação linear quanto em programação não linear ( El-Bakry et al [17], Castronuovo et al [16], Um método primal-dual barreira-logarı́tmica (PDBL) 31 Granville [27], Sousa e Costa [53][54]). Nesta seção apresentamos uma breve descrição de uma versão do método primal-dual barreira-logarı́tmica proposto por Vanderbei e Shanno [56] que é uma versão do método de pontos interiores bastante utilizada em programação não linear. Em seguida veremos uma versão de método de pontos interiores primal-dual apresentada por Akrotirianakis e Rustem [4] também útil. 2.3.1 Um método primal-dual barreira-logarı́tmica (PDBL) O método primal-dual barreira-logarı́tmica (PDBL) aqui apresentado tem como base o trabalho de Vanderbei e Shanno [56], que permite uma boa visão do método tanto em casos convexos como em casos não convexos. Suponha o problema geral de programação não linear representado por: M in. f (t) S.a. g(t) ≥ 0 (2.12) Consideremos t ∈ Rn e as funções f (t) e g(t) sendo duplamente diferenciáveis. A resolução do problema (2.12) pelo método PDBL requer que as restrições de desigualdade se transformem em restrições de igualdade, o que pode ser feito pela adição de variáveis de excesso estritamente positivas (s > 0). É incorporada à função objetivo uma função barreira-logarı́tmica que garante a não negatividade das variáveis de folga. Assim o problema (2.12) pode ser reescrito assim: M in. f (t) − µ ln s S.a. g(t) − s = 0 (2.13) Agora temos para µ > 0, a seguinte função objetivo: fµ (t, s, µ) = f (t) − µ ln s (2.14) A função lagrangeana correspondente ao problema (2.13) é: L(t, s, y; µ) = f (t) − µln s − y T (g(t) − s) (2.15) Um método primal-dual barreira-logarı́tmica (PDBL) 32 As condições de otimalidade de primeira ordem (KKT) para a equação (2.15) são: ∇t L(t, s, y) = ∇f (t) − (A(t))T y = 0 (2.16) ∇s L(t, s, y) = −µe + SY e = 0 ∇y L(x, s, y) = (g(t) − s) = 0 onde A(t) = ∂g(t) ∂t que é a matriz Jacobiana de g(t) S é uma matriz diagonal contendo as variáveis de folga sr ; Y é uma matriz contendo na diagonal os elementos yr ; e = (1, ..., 1); ∇t f (t) = (1, ..., 1). Observação 2.1. Note que da segunda equação de 2.16 decorre que y ≥ 0, sendo consistente com fato de y ser o vetor dos multiplicadores de Lagrange associado com as inequações relativas ao problema original (2.12). De forma semelhante ao que foi feito para programação linear podemos reescrever as condições de KKT para equação (2.16) como: F : R2m+n → R2m+n definida por: ∇f (t) − (A(t))T y F (t, y, s) = −µe + SY e (g(t) − s) =0 (2.17) (t, s) ≥ 0 O método de Newton (MN) será usado para encontrar as raı́zes para a função F (t, y, s). Antes de verificar isto, buscaremos encontrar uma função de mérito que seja compatı́vel com direção de busca encontrada. A função de mérito será definida com a única finalidade de guiar e medir o progresso do algoritmo. O objetivo é que ela seja minimizada com a solução do problema original e, dentro de circunstâncias adequadas ela servirá como uma função de descida para o algoritmo, decrescendo o seu valor a cada passo. Um método primal-dual barreira-logarı́tmica (PDBL) 2.3.1.1 33 Função de mérito Observando as condições necessárias à otimalidade dada pelas equações (2.16), é natural pensar na utilização da função ψ(t, s, y) = ||∇f (t) − A(t)T y||2 + ||SY e||2 + ||g(t) − s||2 (2.18) como uma forma de mensurar quão próximo o ponto (t, s, y) está da solução. No trabalho de El-Bakry et al [17] eles utilizam esta função ψ juntamente com o método de pontos interiores aplicado a problemas de programação não linear. Desde que a matriz Jacobiana do sistema (2.16) seja não-singular, é mostrado em seu trabalho que para mudanças adequadas de µ existe uma seqüência de tamanhos de passo {αk } tais que ψ decresce monotonicamene e as iterações convergem para um ponto em que ψ = 0 . O sucesso, portanto, do algoritmo baseado nesta função de penalidade está ligado à não singularidade do Jacobiano. Outra possibilidade para a função de mérito é uma função de penalidade diferenciável para problemas de programação não-linear estudada por Fiacco e McCormick [18] e também apresentada por Luenberger [34]. A função proposta é definida por: Ψ(t, β) = f (t) + β ||g(t) − s||2 2 (2.19) A desvantagem teórica desta função é a necessidade de se fazer β → ∞ para assegurar a convergência para pontos factı́veis que garantam um valor mı́nimo para o problema original. Entretanto, é utilizada com sucesso (Vanderbei e Shanno [56], Akrotirianakis e Rustem [4]) de forma conjunta com o método de pontos interiores aplicado a problemas gerais de programação não linear. Aplicando esta função de mérito ao problema 2.13 obtemos: Ψβ,µ (t, s) = f (t) − µ ln s + β ||g(t) − s||2 2 (2.20) Esta função de mérito será usada na definição do tamanho do passo obtido pelo método de Newton para garantir que o algoritmo esteja convergindo para um ponto onde tenhamos o menor valor para a função objetivo. Um método primal-dual barreira-logarı́tmica (PDBL) 2.3.1.2 34 Aplicando o Método de Newton Vamos agora, aplicar o método de Newton à equação 2.17, onde obtemos: T H(t, y) 0 −A(t) 0 Y S A(t) −I 0 onde H(t, y) = ∇2 f (t) − T 4t −∇f (t) + A(t) y 4s = µe − SY e 4y −g(t) + s P r (2.21) yr ∇2t gr (t) e representa a matriz Hessiana do Lagrangeano. O sistema (2.21) não é simétrico, mas pode ser facilmente simetrizado, bastando para isto multiplicar a primeira equação por (−1) e a segunda equação por (−S −1 ), assim temos: −H(t, y) 0 0 −S −1 Y A(t) −I T A(t) −I 0 4t σ 4s = γ 4y ρ (2.22) onde: • σ = ∇f (t) − A(t)T y • γ = µS −1 e − y • ρ = −g(t) + s Conforme Vanderbei e Shanno [56], neste contexto ρ apresenta uma medida de infactibilidade para o problema primal (2.13). E, por analogia com programação linear, é possı́vel referir a σ como uma medida de infactibilidade para o problema dual. Veja que a segunda equação pode facilmente ser usada para eliminar 4s, neste caso temos: 4s = SY −1 (γ − 4y) e o sistema (2.22) pode ser reescrito como: σ 4t −H(t, y) A(t)T = −1 −1 ρ + SY γ 4y A(t) SY (2.23) (2.24) Um método primal-dual barreira-logarı́tmica (PDBL) 35 Verificaremos na seqüencia as condições necessárias para a solução do sistema (2.24) e procuraremos explicitar fórmulas para as direções de busca. Para tal definamos a seguinte matriz: N (t, y, s) = H(t, y) + (A(t))T S −1 Y A(t) (2.25) Teorema 2.4. Se N é uma matriz não singular, então (2.21) tem solução única e, particularmente temos: 4t = −N −1 ∇f + µN −1 AT S −1 e + N −1 AT S −1 Y ρ 4s = −AN −1 ∇f + µAN −1 AT S −1 e − (I − AN −1 AT S −1 Y )ρ (2.26) 4y = Y S −1 (ρ − AN −1 (−σ + AT (Y S −1 ρ + Y )) + γ A demonstração deste teorema é simples e é apresentada por Vanderbei e Shanno [56]. Uma vez que a direção de busca tenha sido definida, o algoritmo processa interativamente determinando novas estimativas para a solução ótima ao calcular: tk+1 = tk + αpk 4tk (2.27) sk+1 = sk + αpk 4sk y k+1 = y k + αdk 4y k A definição do tamanho de passo nos trabalhos [53] e [54] é feita tomando: h αp = ςmin h αd = ςmin sj min , 4sj <0 |4sj | yj min , 4yj <0 |4yj | i (2.28) 1.0 i 1.0 (2.29) onde ς ∈ (0, 1) é uma constante escolhida para garantir que os vetores contendo as variáveis s e y não assumam valores exatamente iguais a zero. O valor de ς é determinado empiricamente; Granville [27] sugere o valor de 0,9995. Em um de seus trabalhos Vanderbei [56] considera αpk = αdk = como um tamanho de passo único tanto para as variáveis do primal (tk , sk ), como para a variável do dual (y k ). Além disso, para controlar o tamanho do passo αk , o algoritmo proposto Um método primal-dual barreira-logarı́tmica (PDBL) 36 em [56] assegura que para um valor fixo de µ, move-se de uma iteração a outra buscando minimizar a função Ψβ,µ (t, s) = f (t) − µ ln s + β ||ρ(t, s)||2 2 Esta função Ψβ,µ foi definida anteriormente pela equação (2.20) e para que seja minimizada é necessário que se faça uma seleção adequada do parâmetro β. Na seção seguinte mostraremos uma critério para seleção de β e αk . Também mostraremos uma forma para seleção de µ a fim de buscar a solução ótima para o problema original (2.12), através da redução de µ, tal que µ → 0. 2.3.1.3 Seleção do parâmetros β e µ Um de nossos objetivos básicos é buscar pontos que atendam as condições de otimalidade apresentadas na equação (2.16), e isto, pelas condições da equação (2.22) significa que σ → 0, ρ → 0 e sT y → 0. Vamos, portanto, analisar a convergência deste método verificando o que acontece com σ, ρ, sT y ao longo das iterações. Os dois teoremas seguintes são propostos por Vanderbei e Shanno [56]. Teorema 2.5. Denotemos (t, y, s) = (tk , y k , sk ) como sendo o valor das variáveis na iteração k e por (t, y, s) = (tk+1 , y k+1 , sk+1 ) o valor após o incremento de um passo α = αk nas direções de Newton já determinadas pela equação (2.26). Assim temos: t = t + α4t, y = y + α4y, s = s + α4s, ρ = ρ(t, s), σ = σ(t, y). Então: ρ = (1 − α)ρ + o(α), σ = (1 − α)σ + o(α), sT y = (1 − α(1 − δ))sT y + o(α) onde δ = mµ sT y Um método primal-dual barreira-logarı́tmica (PDBL) 37 Prova Primeiro consideremos ρ: ρ = s − g(t) = s + α4s − g(t + α4t) = s + α4s − g(t) − αA(t)4t + o(α) = s − g(t) + α(4s − A(t)4t) + o(α) = (1 − α)ρ + o(α) A segunda passagem resulta das definições de cálculo, onde temos que o(α) denota um termo que vai para zero mais rápido que α, ou seja, | o(α) |→0 α quando α → 0. Além disto, observe que a última equação decorre do terceiro bloco de equações do sistema (2.22). Para σ, a análise é semelhante, sendo que usaremos o primeiro bloco de equações do sistema (2.22): σ = ∇f (t) − AT (t)y = ∇f (t + α4t) − AT (t + α4t)(y + α4y) = ∇f (t) + α∇2 f (t)4t − AT (t)y − α∇x (y T A(t))T 4t − αAT (t)4y + o(α) = ∇f (t) − AT (t)y + α(H(t, y)4t − AT (t)4y) + o(α) = (1 − α)σ + o(α). Finalmente, analisemos sT y: sT y = (s + α4s)T (y + α4y) = sT y + α(sT 4y + 4sT y) + o(α) (2.30) Podemos reescrever o termo linear em relação a α assim: sT 4y + 4sT y = eT (S4y + Y 4s) = eT (µe − SY e) = mµ − sT y (2.31) = −(1 − δ)sT y. Substituindo (2.31) em (2.30) nós obtemos o resultado desejado. ¤ Um método primal-dual barreira-logarı́tmica (PDBL) 38 A análise deste teorema permite que percebamos a convergência natural de ρ, σ para zero ao longo das iterações. Entretanto, a redução de sT y está condicionada ao fato de δ ∈ (0, 1), ou seja é preciso alterar µ a fim de garantir isto. Para tanto, seguindo o proposto em [17], é possı́vel tomar µ tal que: µ=δ st y m onde δ ∈ (0, 1). Desta forma, o valor do produto sT y decrescerá ao longo das iterações. Por outro lado, a seleção do parâmetro β é fundamental para que as direções de busca definidas por (2.21) sejam direções de descida para Ψβ,µ . Veremos, a partir do próximo teorema, as condições a serem buscadas em β para que seja garantido tal decrescimento desejável. Teorema 2.6. Suponha que a matriz N definida em (2.25) seja positiva definida. Então as direções de busca expressas pela equação (2.26) possuem as seguintes propriedades: (i) Se ρ = 0, então ∇t f µ ∇s fµ 4t ≤0 (2.32) 4s (ii) Existe βmin ≥ 0 tal que para cada β ≥ βmin , ∇t Ψβ,µ 4t ≤0 ∇s Ψβ,µ 4s (2.33) Onde: βmin = −(∇f − µAT S −1 e)T N −1 (∇f − µAT W −1 e) + µS −1 ρ + (∇f − µAT S −1 e)T N −1 AT S −1 Y ρ ||ρ||2 Em ambos os casos, a igualdade ocorre se e somente se (t, s) satisfaz (2.21) para algum y. Como mencionado anteriormente a prova desse teorema pode ser encontrada no trabalho de Vanderbei e Shanno [56], onde é proposta a inicialização do algoritmo Um método primal-dual 39 com β = 0 e este é mantido assim enquanto (4t, 4s) for uma direção de descida para Ψβ,µ . Quando (4t, 4s) falhar como direção de busca, então β é calculado usando β = 10βmin a fim de garantir a convergência para um valor mı́nimo da função de mérito Ψβ,µ . Logo após a definição do parâmetro de penalidade da função de mérito o passo αmax será escolhido a partir de um valor que garanta a não negatividade da variáveis skr e yrk . No nosso caso, isto significa que para r = 1, 2, ...., r0 , skr + α4skr e yrk + α4yrk serão estritamente positivos se αmax = 0, 95(max(− 4skr 4yrk , − ; r = 1, 2, ..., r0 ))−1 skr yrk Então o intervalo [0, αmax ] é pesquisado por sucessivas partições, usando avaliações da função de penalidade, para valores de α que produzam a redução da função de penalidade atendendo a condição de Armijo apresentada no anexo A.3. Desta forma é selecionado o tamanho de passo αpk = αdk . 2.3.2 Um método primal-dual (PD) O método primal-dual aqui apresentado baseia-se na proposta de Akrotiri- ankis e Rustem [4], que apresenta uma prova de convergência global para problema de programação não-linear. Consideremos, um problema de programação não linear representado por: M in. f (x) S.a. (2.34) g(x) = 0, x ≥ 0 Neste caso tem-se f (x) : Rn → R e g(x) : Rn → Rm , contı́nua e diferenciável. Tomemos a aproximação do problema (2.34) dada por min f (x) + β2 ||g(x)||2 − µ Sujeito a: g(x) = 0 Pn i=1 ln(x) (2.35) para β, µ ≥ 0. A função objetivo (2.34) foi acrescida com uma função de Um método primal-dual 40 penalidade quadrática e uma função de barreira logarı́tmica. A função de penalidade quadrática aqui usada é a mesma função de mérito apresentada na seção 2.3.1 e é usada aqui para reforçar a satisfação das restrições de igualdade adicionando um alto custo na função objetivo a pontos que não sejam factı́veis. A função de barreira logarı́tmica é introduzida no MPI para garantir a factibilidade estrita enquanto aproxima da solução ótima. O método de penalidade/barreira envolve iterações internas e externas. As iterações externas são associadas com o decrescimento do parâmetro de barreira µ, tal que µ → 0. As iterações internas determinam o parâmetro de penalidade β e então resolve o problema (2.35) para determinados valores de µ e β. As condições de otimalidade para o problema (2.35) são dadas pelo sistema não linear de equações ∇f (x) − µX −1 e + β∇g(x)T g(x) − ∇g(x)T y g(x) = 0, Utilizando a transformação não-linear z = µX −1 , obtemos: ∇f (x) − zβ∇g(x)T g(x) − ∇g(x)T y F (x, y, z; β, µ) = g(x) = 0, XZe − µe x>0 x, z > 0. (2.36) Para µ fixo, o sistema (2.36) é resolvido pelo método de Newton, onde temos: H ∇g Z −∇g T −I 0 0 Onde, H = 0 X ∇2xx Lβ 4x 4y = − 4z 2 = ∇ f (x) + m X ∇f − z + β∇g T g − ∇g T y g (2.37) XZe − µe ∇gi (x)(βgi (x) − yi ) + β∇g(x)∇g(x)T . X, Z i=1 são matrizes diagonais em que os elementos diagonais são respectivamente as coordenadas de x e z. A solução de (2.37) é obtida quando N = H + X −1 Z é inversı́vel, onde Um método primal-dual 41 temos as seguintes direções: 4x = N −1 (∇g T 4y − ∇f + z − β∇g T g − ∇g T y) 4y = −[∇gN −1 ∇g T ]−1 [g − ∇gN −1 (∇f − z + β∇g T g − ∇g T y)] 4z = −z + µX −1 Z4x Como no método primal-dual com barreira-logarı́tmica visto na seção (2.3.1), uma vez que a direção de busca tenha sido definida, o algoritmo processa interativamente determinando novas estimativas para a solução ótima calculando: xk+1 = xk + αpk 4xk (2.38) y k+1 = y k + αdk 4y k z k+1 = z k + αdk 4z k O controle do passo é feito de forma a assegurar que as iterações gerem pontos estritamente interiores à região factı́vel e, além disto, o algoritmo move por pontos que minimizem a função de mérito n X β ln(x) Φ = f (x) + ||g(x)||2 − µ 2 i=1 que nada mais é do que a função objetivo do problema (2.35). Este decrescimento, como no método PDBL é garantido pela adequada seleção do parâmetro β a cada iteração. Em seu trabalho Akrotiriankis e Rustem [4] demonstra que esta função decresce monotonicamente e garante a convergência para a solução de (2.36) para µ fixo. Com a redução de µ, tal que {µ} → 0, é encontrado o valor ótimo para (2.34). A cada iteração o valor de β é definido de forma a poder garantir o decrescimento da função Φ . Para µ fixo, o gradiente de Φ na k-ésima iteração é 9 ∇Φ(xk ; βk , µ) = ∇f + βk ∇gkT gk − µX −1 e Considerando a segunda equação do sistema de Newton (2.37), a derivada direcional pode ser escrita como 4xTk ∇Φ(xk ; βk , µ) = 4xTk ∇f (xk ) − βk ||gk ||2 − µ4xTk Xk−1 e Como o parâmetro µ das iterações internas é fixo, então é possı́vel verificar que o sinal de ∇Φ(xk ; βk , µ)4xk depende do valor de β. Sendo assim, β é definido Conclusão 42 como sendo superior a −1 4xTk ∇fk − µ4xTk XK e + ||4xk ||2H ||gk ||2 garantindo o decrescimento da função de mérito Φ e, conseqüentemente da função objetivo do problema original (2.34). Na seleção do tamanho do passo primal, αp é selecionado conforme a regra de Armijo (A.3) aplicado à função objetivo a partir de um valor máximo para αpmax = h i xik min ξmin 4x com 0 < ξ < 1. i <0 |4xi | k k Enquanto o parâmetro de barreira µ é fixo, o passo αd é determinado ao longo da direção 4zk para cada variável dual zki , i = 1, 2, ..., n, de forma que as seguintes restrições sejam satisfeitas αdi = max{α > 0 : Lik ≤ (xik + αp 4xik )(zki + α4zki ) ≤ Uki } Onde os limites inferior Lik e superior Uki , i = 1, 2, ..., n são definidos como Lik = min{ 12 mµ, (xik +αp 4xik )zki e Uki = max{2M µ, (xik +αp 4xik )zki }, sendo que os parâmetros m e M são definidos como: n (1−γ )(1− γ ) min {xi zi } i k k k 2µ 0 < m < min 1, µ o n o maxi {xik zki } γk ∈ (0, 1) e M ≥ max 1, >0 µ Os valores de m e M são mudados à medida que µ decresce. O algoritmo primal-dual para programação não-linear aqui descrito encontra sua prova de convergência global apresentada por Akrotirianakis e Rustem [4] desde que sejam satisfeitas certas condições. Dentre essas condições, o problema de job-shop não satisfaz a condição referente a segunda condição de otimalidade. Sendo assim, essa demonstração não se aplica de forma direta ao nosso caso. Conclusão Pela breve descrição do método de pontos interiores feita ao longo deste capı́tulo é possı́vel perceber a sua importância como ferramenta de resolução de pro- Conclusão 43 blemas de otimização tanto na forma de programação linear como na forma de programação não linear. Quanto aos métodos aplicáveis a programação não linear apresentados nas seções 2.3.1 e 2.3.2, as soluções obtidas para os sistemas (2.36) e (2.17) são as mesmas significando que os sistemas são equivalentes. Entretanto, estes não são algoritmos de Newton equivalentes (El-Bakry et al [17], Akrotirianakis e Rustem [4]). No caso de um problema de job-shop temos duas possibilidades para a sua modelagem. Como especificado no capı́tulo 1, escolhemos uma modelagem contı́nua de programação não linear. Neste caso, alguns cuidados deverão ser tomados em função de se tratar de um espaço de busca não convexo. Vale ressaltar em relação ao método PDBL que toda discussão em torno da função de penalidade proposta (2.19) assume que a matriz N seja positiva definida. Entretanto, veremos que não podemos oferecer esta garantia no caso do problema de job-shop em questão. Será, portanto, preciso fazer alguma alteração na Hessiana para que possamos garantir a positividade da matriz N . Veremos, portanto, no próximo capı́tulo como efetuar estas mudanças e quais as implicações no espaço de busca do primal e do dual. Capı́tulo 3 Método de Pontos Interiores Aplicado ao Problema Job-Shop Como apresentado anteriormente na seção 1.3.3 podemos modelar um problema de seqüenciamento job-shop com uma modelagem contı́nua, mas não linear e não convexa. É fato que modelos de programação não linear constituem geralmente um desafio maior para a busca de soluções (Wright [57]). Entretanto, o método de pontos interiores, conforme apresentamos na seção 2.3 tem apresentado bons resultados como ferramenta na busca de soluções de problemas de programação não linear e não convexo (El-Bakry et al [17], Vanderbei e Shanno [56], Sousa e Costa [53]). Desta forma, a aparente dificuldade de modelos contı́nuos pode ser superada com o uso de um método de ponto interior adequado, o que nos levou a adotar neste trabalho um modelo contı́nuo inspirado na proposta de Pinson [42]. Neste capı́tulo discutiremos em mais detalhes o modelo contı́nuo para o problema de job-shop adotado na seção 3.1. A seguir na seção 3.2 analisaremos o método de pontos interiores e as alterações que serão necessárias para usá-lo na resolução do problema de job-shop considerado. Finalmente, faremos na seção 3.3 uma análise de convergência da metodologia proposta. Análise do Modelo de Seqüenciamento Job-Shop Adotado 3.1 45 Análise do Modelo de Seqüenciamento Job-Shop Adotado No primeiro capı́tulo foi feita uma descrição mais detalhada do problema de seqüenciamento job-shop (§1.2) e de formas pelas quais é possı́vel construir um modelo matemático para tal problema (§1.3). O que nos propomos agora é fazer uma análise mais acurada do modelo matemático não linear apresentado na seção (§1.3.3). Este modelo foi adotado em nosso trabalho pelos motivos mencionados anteriormente no capı́tulo 1, e por outros motivos que se evidenciarão ao longo de nossas análises nas seções seguintes. Relembrando as definições feitas nestas seções (§1.2, §1.3.3), podemos descrever um problema de seqüenciamento job-shop com m e máquinas e p produtos como um problema de otimização restrito da forma: M in. f (t) = n0 X tj j=1 S.a. tj+1 − tj − dj ≥ 0 ∀j ∈ C −(tv − tu + dv ) × (tu − tv + du ) ≥ 0 ∀(u, v) ∈ D (3.1) tj ≥ 0 j = 1, ..., p0 B − tj ≥ 0 j = 1, ..., p0 Fizemos uma mudança de sinal nas restrições tornando-as não negativas para adequar ao modelo padrão de programação não linear em que estaremos aplicando o método de pontos interiores. Além disto, incluı́mos um limite superior B às variáveis do problema. Este limite superior apenas serve como garantia de que se trata de um espaço de busca limitado facilitando demonstrações de teoremas subseqüentes. Vale ressaltar que essa alteração não altera em nada a solução do problema original. O n0 X calculo desse limite foi feito tomando-se B = dj + 1 que é um valor superior ao j=1 tempo de inı́cio de qualquer operação na pior de todas as hipóteses. Consideremos R = {r = 1, ..., r0 } como sendo um conjunto de ı́ndices referentes a cada restrição. Sendo assim, observe que nosso modelo foi dividido em quatro grupos de restrições. O primeiro, terceiro e quarto grupo de restrições são lineares e Análise do Modelo de Seqüenciamento Job-Shop Adotado 46 referindo-se respectivamente às restrições conjuntivas ou de precedência na gama operatória, às restrições de não negatividade das variáveis e ao limite superior imposto às variáveis. A segunda restrição é onde se centraliza nossa principal atenção e refere-se aos pares de restrições disjuntivas. Este grupo de inequações não é linear e além disto introduz uma componente não conexa em nosso espaço de busca de soluções. Vamos, portanto, analisar um pouco melhor este grupo de restrições. Consideremos a seguinte função: g(tu , tv ) = −(tv − tu + dv ) × (tu − tv + du ) Fazendo as devidas multiplicações podemos reescrevê-la assim: g(tu , tv ) = t2u + t2v − 2tu tv + (du − dv )tu + (dv − du )tv − dv du 3.1.1 (3.2) Análise do Espaço de Busca Vamos primeiramente verificar o espaço de busca referente a uma disjunção. Neste caso estamos procurando pontos para os quais g(tu , tv ) ≥ 0. Este conjunto de pontos para uma restrição é apresentado na figura 3.1 , onde podemos verificar que o espaço de busca referente à disjunção não é conexo como mencionado anteriormente (1.3.3). Este fato condiz com a caracterı́stica combinatória do seqüenciamento jobshop. Caso escolhamos uma direção para a disjunção estaremos definindo o lado no espaço de busca. Neste caso, se escolhermos primeiro executar a operação u e depois a operação v, então estaremos escolhendo o região A1 na figura 3.1. Por outro lado, se escolhermos inverter a ordem das operações então estaremos escolhendo pontos na região A2 da figura 3.1. Note que a função g apresentada na equação (3.2) é duplamente diferenciável 2 −2 . Considerando um vetor t = (tu , tv ) ∈ <2 e sua matriz Hessiana é H = −2 2 T temos que t Ht é: 2t2u − 4tu tv + 2t2v = 2(tu − tv )2 ≥ 0 Então, podemos dizer que a função g é convexa pois a matriz Hessiana desta função é semi-definida positiva para todos os pontos de seu domı́nio. Para confirmar isto veja um exemplo do gráfico desta função na figura 3.2. Análise do Modelo de Seqüenciamento Job-Shop Adotado 47 tv A1 du A2 tu dv Figura 3.1: Gráfico que representa a região de busca referente a uma restrição disjuntiva 100 80 60 z 40 20 0 0 1 −20 2 3 −40 4 0 1 5 2 3 6 4 5 y 7 6 8 7 8 9 9 10 x 10 Figura 3.2: Gráfico da função que representa uma restrição disjuntiva Análise do Modelo de Seqüenciamento Job-Shop Adotado 48 Observação 3.1. O fato da função g ser convexa traz implicações importantes neste caso, pois como vimos nesta seção temos um espaço de busca não convexo. Diante disto, pelo teorema A.6 apresentado em anexo, concluı́mos que para o problema 3.1 um ponto que atenda as condições de KKT do teorema A.4 tendo uma restrição disjuntiva ativa não será necessariamente um ponto onde a função objetivo é mı́nima. Vamos tomar como exemplo um problema de job-shop contendo apenas dois produtos e três operações. Este exemplo servirá não só para confirmar a observação 3.1, bem como para apresentar outros aspectos importantes referentes ao problema. Consideremos então um problema de job-shop com dois produtos e duas maquinas, cujos dados são apresentados na tabela 3.1. produto operação duração máquina 1 1 3 1 1 2 5 2 2 3 7 2 Tabela 3.1: Dados do problema-exemplo 2 de job-shop. Após a modelagem adequada temos, M in. f (t) = t1 + t2 + t3 S.a. t2 − t1 − 3 ≥ 0 t22 + t23 − 2t2 t3 + 2t3 − 2t2 − 35 ≥ 0 t1 ≥ 0 t2 ≥ 0 (3.3) t3 ≥ 0 16 − t1 ≥ 0 16 − t2 ≥ 0 16 − t3 ≥ 0 Para este problema temos dois pontos (t1 = (0, 3, 8) e t2 = (0, 7, 0)) satisfazendo a primeira condição de otimalidade (KKT) e tendo pelo menos uma restrição disjuntiva ativa. Estes pontos são exatamente as duas únicas possibilidades referentes à única restrição disjuntiva. O ponto t1 é obtido quando executamos primeiro a operação 2 na máquina 2 e, o ponto t2 refere-se a execução da operação 3 antecedendo a Análise do Modelo de Seqüenciamento Job-Shop Adotado 49 operação 2 na máquina 2. Entretanto, t2 é um ponto onde a função objetivo é mı́nima (f (t2 ) = 7) enquanto para t1 temos f (t1 ) = 11 não sendo a melhor opção. Uma outra observação importante decorrente deste problema refere-se ao fato de que plano tangente a estes pontos é composto apenas pelo vetor nulo. Portanto, não é possı́vel concluir nada quanto a otimalidade dos pontos estacionários referentes a este problema. Isto nos leva a uma análise da Hessiana do Lagrangeano H(t, y) pois, além destes motivos aqui mencionados, para atender a condição de otimalidade de segunda ordem, é preciso que H(t, y) seja positiva definida no hiperplano formado pelos gradientes das restrições ativas. Vejamos, então qual o comportamento da Hessiana H(t, y) para o problema de job-shop aqui considerado. 3.1.2 Análise da Hessiana do Lagrangeano Retomemos o modelo matemático empregado no inı́cio desta seção e reescre- vamos os blocos de restrições como funções duplamente diferenciáveis expressas por: 1 gj,j+1 (t) = tj+1 − tj − dj j∈C 2 gu,v (t) = t2u + t2v − 2tu tv + (du − dv )tu + (dv − du )tv − dv du (u, v) ∈ D gj3 (t) = tj j ∈ J = 1, ..., p0 gj4 (t) = B − tj j ∈ J = 1, ..., p0 Assim podemos reescrever o Lagrangeano do problema de job-shop apresentado na equação 2.15, levando em consideração estes três blocos de restrições. L(t, s, y) = f (t)−µln s−(y 1 )T (g 1 (t)−s1 )−(y 2 )T (g 2 (t)−s2 )−(y 3 )T (g 3 (t)−s3 )−(y 4 )T (g 4 (t)−s4 ) A matriz Hessiana H(t, y) será portanto composta pela soma da hessiana da função f (t) e das hessianas de todas as r restrições do problema. A função f (t) e as restrições que compõem o primeiro, terceiro e quarto grupo de restrições são lineares, então suas respectivas hessianas são matrizes nulas. Concluı́mos assim, que a Hessiana H(t, y) = −(y 2 )T G2 (t), onde G2 (t) representa a soma das hessianas do segundo grupo de restrições que corresponde ao grupo das restrições disjuntivas. Análise do Modelo de Seqüenciamento Job-Shop Adotado 50 As matrizes hessianas deste segundo grupo de equações terão um formato em bloco semelhante entre si. Em cada bloco temos que ∂ 2g2 ∂ 2g2 = = ∂t2u ∂t2v 2 (u, v) ∈ D ∂ 2g2 ∂ 2g2 = = −2 ∂tu tv ∂tv tu (u, v) ∈ D ∂ 2g2 ∂ 2g2 = = ∂tu tv ∂tv tu (u, v) 6∈ D 0 Logo, cada hessiana destas restrições será uma matriz simétrica com a diagonal composta de dois termos iguais a 2 e dois outros termos simétricos iguais a −2 referentes a disjunção considerada e os demais termos são nulos. Como a Hessiana H(t, y) é composta da soma das hessianas das restrições pré-multiplicadas por −yr1 e, sendo yr > 0 conforme a observação 2.1, então H(t, y) será composta de blocos de matrizes semi-definidas negativas. Assim podemos concluir que H(t, y) é semi-definida negativa. Para explicitar estas principais caracterı́sticas da Hessiana tomemos um novo exemplo de job-shop, apresentado pela tabela abaixo: produto operação duração máquina 1 1 4 1 1 2 5 2 2 3 3 1 2 4 2 2 3 5 5 1 Tabela 3.2: Dados do problema-exemplo 3 de job-shop. Análise do Modelo de Seqüenciamento Job-Shop Adotado 51 Após a modelagem matemática proposta, temos: Min.: 5 X tj − µ j=1 16 X ln sr r=1 Sujeito a: t2 − t1 − 4 − s1 = 0 t4 − t3 − 3 − s2 = 0 t21 + t23 − 2t1 t3 + t1 − t3 − 12 − s3 = 0 t23 + t25 − 2t3 t5 − 2t3 + 2t5 − 15 − s4 = 0 t21 + t25 − 2t1 t5 − t1 + t5 − 20 − s5 = 0 t22 + t24 − 2t2 t4 + 3t2 − 3t4 − 10 − s6 = 0 t1 − s7 = 0 t2 − s8 = 0 t3 − s9 = 0 t4 − s10 = 0 t5 − s11 = 0 19 − t1 − s12 = 0 19 − t2 − s13 = 0 19 − t3 − s14 = 0 19 − t4 − s15 = 0 19 − t5 − s16 = 0 Neste caso, já foram incluı́das as variáveis de excesso e uma função de barreira logarı́tmica a fim de obter restrições de igualdade e garantir não negatividade destas novas variáveis introduzidas. Se considerarmos os multiplicadores de Lagrange como sendo yr , r ∈ R = 1, ..., 11, então a Hessiana H(t, y) será dada por: −2y3 − 2y5 0 2y3 0 2y5 0 −2y6 0 2y6 0 H(t, y) = 2y3 0 −2y3 − 2y4 0 2y4 0 2y6 0 −2y6 0 2y5 0 2y4 0 −2y4 − 2y5 Consideremos um vetor genérico t = (t1 , t2 , t3 , t4 , t5 ) t ∈ R5 , então fazendo tT H(t, y)t e lembrando que o valor de yr ≥ 0, obtemos: −2y3 (t1 − t3 )2 − 2y4 (t3 − t5 )2 − 2y5 (t1 − t5 )2 − 2y6 (t2 − t4 )2 ≤ 0 ∀t ∈ R5 Análise do Modelo de Seqüenciamento Job-Shop Adotado 52 Logo H(t, y) é semi-definida negativa para quaisquer vetores do R5 . Isto indica que os pontos estacionários obtidos para um problema de job-shop ou são pontos de máximo local ou não se pode afirmar nada a respeito deles como aconteceu no problema-exemplo 2. O método de pontos interiores faz uma busca procurando pontos que atendam a primeira condição de otimalidade, ou seja, busca-se pontos estacionários. Portanto, é preciso guiar esta busca para garantir a convergência para pontos onde a função objetivo seja mı́nima. Esta orientação na busca é feita através do uso de funções de mérito de forma semelhante ao apresentado nas seções 2.3.2 e 2.3.1. Nesta última seção, através do teorema 2.6 nós mostramos que a direção de busca obtida pelo algoritmo PDBL (4t, 4s) tem caracterı́sticas decrescentes tanto para a função de barreira como para função de mérito usada desde que N (t, y, s) = H(t, y) + (A(t))T S −1 Y A(t) seja positiva definida. Caso isto não ocorra, o algoritmo pode até convergir, mas pode caminhar para um ponto onde a solução não seja mı́nima. No nosso caso, já que as variáveis si e yi são positivas então (A(t))T S −1 Y A(t) é definida positiva desde que a matriz Jacobiana do Lagrangeano A(t) tenha posto completo o que é verdade em nosso caso particular. Entretanto, não podemos garantir que a matriz N (t, y, s) seja definida positiva a cada iteração em função da Hessiana H(t, y) ser semi-definida negativa como acabamos de ver. A saı́da encontrada continua sendo semelhante a apresentada na seção 2.3.1. No caso de N (t, y, s) não ser definida e y) = H(t, y) + λI. Esta mudança, garante positiva então substituı́mos H(t, y) por H(t, que serão encontradas direções de decrescimento para as funções de mérito usadas e conseqüentemente para a função objetivo do problema original. Entretanto, mesmo tendo sido alteradas apenas as informações de segunda ordem, é preciso analisar qual o impacto provocado na convergência do algoritmo. Esta análise será feita na seção seguinte. Método de Pontos Interiores e o Seqüenciamento Job-Shop 3.2 53 Método de Pontos Interiores e o Seqüenciamento Job-Shop Como visto na seção 3.1 o modelo de programação matemática adotado para o problema de seqüenciamento job-shop é um modelo de programação não linear e não convexo. O método de pontos interiores tem sido usado com sucesso em situações desta natureza (seção 2.3), entretanto alguns cuidados deverão ser tomados a fim de garantir a convergência neste caso particular. Retomaremos as definições referentes ao método de pontos interiores com barreira logarı́tmica vistas na seção 2.3.1, buscando realizar os ajuste necessários à convergência do método ao ser aplicado ao nosso problema de job-shop. Lembremos que um problema de job-shop possui tantas variáveis quanto o número de operações, ou seja, n0 variáveis. Se, então, denotarmos por r0 o número total de restrições, podemos definir uma função g(t) : Rp0 → Rr0 para representar as restrições do problema de job-shop da seguinte forma: t − dj − tj j+1 2 tu + t2v − 2tu tv + (du − dv )tu + (dv − du )tv − dv du g(t) = tj B − tj sendo: j ∈ C (3.4) (u, v) ∈ D j = 1, ..., p0 P0 B = pj=1 dj Desta forma o problema 3.1 pode ser reescrito como um modelo geral de programação não linear: M in. f (t) S.a. (3.5) g(t) ≥ 0 Neste caso o vetor t possui dimensão p0 e as funções f (t) = p0 X tj e g(t) definida em j=1 (3.4) são duplamente diferenciáveis. Acrescentamos uma variável de folga sr em cada uma das r restrições de desigualdade com a finalidade de transformá-las em igualdade. Método de Pontos Interiores e o Seqüenciamento Job-Shop Incorporamos, também, uma função de barreira logarı́tmica Bµ = µ 54 r0 X ln si à função i=1 objetivo para garantir a positividade desta nova variável. Assim obtemos: M in. f (t) − µ ln s S.a. g(t) − s = 0 (3.6) As condições de otimalidade de primeira ordem (KKT) para o problema (3.6) são: ∇t L(t, s, y) = ∇f (t) − (A(t))T y = 0 ∇s L(t, s, y) = −µe + SY e = 0 (3.7) ∇y L(x, s, y) = (g(t) − s) = 0 onde A(t) = ∂g(t) ∂t que é a matriz Jacobiana de g(t) S é uma matriz diagonal contendo as variáveis de folga sr ; Y é uma matriz contendo na diagonal os elementos yr ; e = (1, ..., 1); ∇t f (t) = (1, ..., 1). 3.2.1 Definições iniciais e funções de mérito Antes de descrever o método de pontos interiores utilizado gostarı́amos de relembrar algumas notações já usadas no capı́tulo anterior e que serão retomadas aqui: σ = ∇f (t) − A(t)T y γ = µS −1 e − y ρ = −g(t) + s (3.8) p(t, s); z = (p, y) = (t, s, y) Além destas definições, com o objetivo de guiar a um caminho de busca por direções que garantam o decrescimento da função objetivo, estaremos utilizando algumas funções de mérito à semelhança do que foi realizado nos algoritmos apresentados Método de Pontos Interiores e o Seqüenciamento Job-Shop 55 na seção 2.3. Definiremos as seguintes funções de mérito: ν(t, s, y) = max{||σ||, ||ρ||, ||SY e||} νµ (t, s, y) = max{||σ||, ||ρ||, ||Sγ||} r0 X β ln si + y T ρ + ρT ρ Lβ,µ (t, s, y) = f (t) − µ 2 i=1 Estaremos adotando em nossas análises a norma l∞ ou seja se t ∈ Rp0 então ||t|| = max |xi |. Desta forma, note que a função ν(t, s, y) mede a distância entre a 1≤i≤p0 aproximação corrente e pontos estacionários (KKT) para o problema 3.5. Já a função νµ (t, s, y) mede a distância entre o ponto corrente e pontos estacionários para o problema com barreira 3.6 tendo µ fixo. Gostarı́amos de dar uma atenção especial à função Lβ,µ (t, s, y) que é o Lagrangeano aumentado para o problema com barreira 3.6. O Lagrangeano aumentado pode ser visto como uma função de penalidade exata quando os próprios valores duais yr são usados nas iterações [34]. De forma semelhante aos métodos clássicos de otimização que utilizam o Lagrangeano aumentado inicializaremos com um determinado vetor y de variáveis duais e buscaremos através do MPI encontrar um ponto pk = (tk , sk ) que minimize Lβ,µ (t, s, y). Em seguida alteraremos o vetor de variáveis duais tomando y = y + βρ(t, s). Como estamos tratando com um problema cujo espaço de busca não é convexo o Lagrangeano aumentado é uma boa opção a ser usada como função de penalidade (mérito) na medida em que este possui um ponto de sela na solução ótima do primal, mesmo diante de falta de convexidade [36]. Entretanto, para que isto aconteça é preciso que Lβ,µ (t, s, y) seja limitado inferiormente, esta análise será feita na seção 3.3 através do teorema 3.2. Mostraremos também, que as mudanças propostas na seção 3.2.2 garantirão que a direção primal encontrada pelo MPI é uma direção de decrescimento para a função Lβ,µ (t, s, y). Feitas estas colocações aplicaremos o método de Newton a este conjunto de Método de Pontos Interiores e o Seqüenciamento Job-Shop equações (3.7) o que nos fornecerá H(t, y) 0 −A(t)T 0 Y S A(t) −I 0 Onde H(t, y) = ∇2 f (t)− P r o seguinte sistema linear: 4t −∇f (t) + A(t)T y 4s = µe − SY e 4y −g(t) + s 56 (3.9) yr ∇2t gr (t) e representa a matriz Hessiana do Lagrangeano. Se considerarmos N (t, y, s) = H(t, y)+A(t)T S −1 Y A(t) como sendo uma matriz inversı́vel, então podemos definir de forma explı́cita as direções de busca encontradas pelo MN como: 4t = N −1 (−σ + AT (S −1 Y ρ + γ)) (3.10) 4s = −ρ − A4t 4y = γ + S −1 Y (ρ − A4t) Os cálculos aqui foram omitidos, mas o processo é semelhante ao apresentado pelo teorema 2.4. 3.2.2 Mudança da matriz normal N (t, s, y) Para aplicar o MPI ao problema de job-shop precisamos que a matriz N (t, s, y) seja inversı́vel em função do teorema 2.4, mas isto não é suficiente. Precisamos que esta matriz N (t, s, y), que denominaremos de matriz normal, seja uma matriz definida positiva para que possamos garantir direções de busca decrescentes para a função de mérito associada ao método (veja teorema 2.6). Entretanto, a matriz N (t, y, s) pode não ser definida positiva pelo fato da Hessiana H(t, y) ser semi-definida negativa como apresentado na seção 3.1.2. Neste caso, podemos alterar esta matriz N fazendo: b (t, y, s) = N (t, y, s) + λI, N λ≥0 (3.11) A nossa preocupação se volta para a Hessiana H(t, y) visto que A(t)T S −1 Y A(t) é semi-definida positiva, pois as variáveis s e y são assumidas sendo positivas. Assim o incremento de uma constante λ aos elementos diagonais feitas pela equação (3.11) alterará basicamente a Hessiana H(t, y). Desta forma, as informações de segunda ordem do sistema de equações original (2.13) é aproximada sendo que as informações de Método de Pontos Interiores e o Seqüenciamento Job-Shop 57 primeira ordem permanecem intactas. Sobretudo, se λ é incrementado até que N seja definida positiva, então poderemos aplicar o teorema 2.6 e garantir o decrescimento tanto para a função de mérito como para a função de barreira. Mas, tal mudança certamente produz algum impacto no espaço de busca primal e/ou do dual. O teorema b = H(t, y) + λI, 3.1 verifica esta questão, considerando a matriz H λ > 0 no lugar de H à medida que verifica a variação do lado direito do sistema (3.9) ao longo das iterações. Antes de ver este teorema, lembremos que o algoritmo de MPI realiza passos (t, s, y) → (e t, se, ye) tais que e t = t + α4t se = s + α4s ye = y + α4y Consideremos inicialmente α como sendo um tamanho de passo único tanto para o primal como para o dual. O tamanho de passo é definido, como mencionado anteriormente na seção 2.3.1, de forma que a variável dual y e de folga s sejam estritamente positivas, ou seja: i h α = ξmin min sr , 4sr <0 |4sr | min yr , 4yr <0 |4yr | 1.0 onde 0 < ξ < 1. Teorema 3.1. Considere (e t, ye, se) como sendo o valor das variáveis (t, y, s) após um passo nas direções de Newton definidas pela equação (3.10). Assim temos: e t = t + α4t, ye = y + α4y, se = s + α4s, ρe = ρ(e t, se), σ e = σ(e t, ye). Substituindo H por H = H + λI, λ ≥ 0, tem-se: ρe = (1 − α)ρ + o(α), seT ye = (1 − α(1 − δ))sT y + o(α), com δ = r0 µ sT y σ e = (1 − α)σ − αλ4t + o(α). Prova: Os dois primeiros ı́tens não sofrem nenhuma alteração em função da mudança da Hessiana, tendo demonstração igual a realizada no teorema 2.5. Método de Pontos Interiores e o Seqüenciamento Job-Shop 58 Para σ e, a análise é semelhante a feita no teorema 2.5, sendo que usaremos a b no lugar de H: matriz H σ e = ∇f (e t) − AT (e t)e y = ∇f (t + α4t) − AT (t + α4t)(y + α4y) = ∇f (t) + α∇2 f (t)4t − AT (t)y − α∇x (y T A(t))T 4t − αAT (t)4y + o(α) = ∇f (t) − AT (t)y + α(H(t, y)4t − AT (t)4y) + o(α) Substituindo H por H , temos σ e = ∇f (t) − AT (t)y + α((H(t, y) + λI)4t − AT (t)4y) + o(α) = ∇f (t) − AT (t)y + α((H(t, y)4t − AT (t)4y) + λ4t) + o(α) = (1 − α)σ − αλ4t + o(α). ¤ O teorema 3.1 mostra que a alteração realizada com o incremento de um fator λ nos elementos da diagonal de N (t, y, s) não tem nenhum impacto na factibilidade do primal (ρ), mas possui uma interferência na factibilidade do dual. Neste caso, se λ for maior que zero, a infactibilidade do dual pode deixar de decrescer mesmo com passos arbitrariamente pequenos. Diante deste fato relevante no caso do job-shop, buscamos uma regularização do dual conforme Griva et al [28]. Acrescentamos um novo parâmetro ² para controlar o crescimento das variáveis duais. Estaremos admitindo ² = 1 β onde β é o parâmetro de penalidade da função Lβ,µ (t, s, y). O motivo desta escolha ficará evidente na seção 3.3. Desta H(t, y) 0 −A(t)T 0 S −1 Y I 1 A(t) −I I β forma o sistema (3.9) será reescrito como: −σ 4t (3.12) 4s = γ ρ 4y Substituindo ² por df rac1β, temos: H(t, y) 0 −A(t) 0 S −1 Y I A(t) −I 1 I β T −σ 4t 4s = γ ρ 4y (3.13) Método de Pontos Interiores e o Seqüenciamento Job-Shop 59 O teorema seguinte apresenta não apenas uma condição necessária para que este sistema tenha solução definida, como também, fórmulas explı́citas para obtenção das direções de busca. Teorema 3.2. Seja Nβ (t, y, s) = H(t, y) + A(t)T [SY −1 + β −1 I]−1 A(t) uma matriz não singular, então o sistema (3.13) tem solução única e, particularmente temos: 4t = Nβ−1 (βAT (S −1 Y + β)−1 (γ − βρ) − σ + βAρ) 4s = (S −1 Y + β)−1 (γ − βρ + βA4t) (3.14) 4y = β(ρ − A4t + 4s) Prova: Primeiramente resolvemos a terceira equação do sistema 3.13 para 4y onde obtivemos 4y = β(ρ − A4t + 4s) a seguir substituı́mos 4y na primeira e segunda equação. Desta forma obtemos o seguinte sistema na forma matricial: H + βAT A −βAT 4t −σ + βA(t)T ρ = −1 −βA S Y + βI 4s γ − βρ (3.15) Observe que o sistema (3.15) é um sistema simétrico. Para resolução deste sistema primeiro resolvemos a segunda equação para 4s, obtendo: 4s = (S −1 Y + β)−1 (γ − βρ + βA4t) em seguida substituı́mos esta expressão na primeira equação, assim temos: (H + βAt A − βAt (S −1 Y + β)βA)4t = βAT (S −1 Y + β)−1 (γ − βρ) − σ + βAρ Observe que: H + βAt A − βAt (S −1 Y + β)−1 βA = H + βAT A(1 − βs(Y e + βs)−1 ) = H + βY AT (Y e + βS)−1 A = H(t, y) + A(t)T [SY −1 + β −1 I]−1 A(t) = Nβ (t, s, y) Desta forma, se Nβ for não singular então obtemos: 4t = Nβ−1 (βAT (S −1 Y + β)−1 (γ − βρ) − σ + βAρ) Método de Pontos Interiores e o Seqüenciamento Job-Shop 60 ¤ Como fizemos anteriormente, exigiremos um pouco mais de Nβ (t, y, s). Precisamos que a matriz Nβ seja positiva definida. Caso isto não aconteça, nós a substituı́mos por bβ (t, y, s) = Nβ (t, y, s) + λI, N λ≥0 (3.16) Neste caso, λ é incrementado até que o menor autovalor de Nβ seja maior que um determinado λN > 0. Antes de apresentarmos a forma de fazer este incremento em Nβ veremos uma conseqüência interessante pelo fato de torná-la definida positiva. Neste caso, além de podermos garantir a solução para o sistema (3.13), poderemos pelo teorema 3.3 garantir que a matriz reduzida (3.15) também é positiva definida Teorema 3.3. Consideremos as matrizes Nβ = H +AT [β −1 I +Y −1 S]−1 A e S −1 Y +βI sendo matrizes simétricas e positivas definidas com menores auto-valores sendo λN e λC respectivamente. Então a matriz T T H + βA A −βA M = −βA S −1 Y + βI é também positiva definida com menor autovalor λM dependendo de λN e λC . Prova: Precisamos mostrar que para qualquer vetor p = (t, s) 6= 0 a forma quadrática pT M p é positiva. Na demonstração do teorema 3.2 vimos que Nβ = H + AT [β −1 I + Y −1 S]−1 A = H + βAt A − βAt (S −1 Y + β)−1 βA Como a matriz Nβ é positiva definida temos que: tT (H + βAT A − βAt (S −1 Y + βI)−1 βA)t ≥ λ0 tT t tT (H + βAT A)t − tT βAt (S −1 Y + βI)−1 βA)t ≥ λ0 tT t tT (H + βAT A)t ≥ tT βAt (S −1 Y + βI)−1 βA)t + λ0 tT t Portanto h i tT sT T T H + βA A −βA −βA S −1 Y + βI t s = = tT (H + βAT A)t + sT (S −1 Y + βI)t − 2sT (βA)t ≥ ≥ tT βAt (S −1 Y + βI)−1 βA)t + λN tT t + sT (S −1 Y + βI)t − 2sT (βA)t = = λN tT t + (S −1 Y + βI)−1 ((S −1 Y + βI)s − βAt)2 ≥ λM pt p Método de Pontos Interiores e o Seqüenciamento Job-Shop 61 onde λM ≥ α min{λN , λC }, α > 0. ¤ Como as variáveis s, y e o parâmetro β são assumidos sendo positivos, então S −1 Y + βI será definida positiva e podemos admitir λC = β. Por outro lado, a matriz Nβ poderá não ser definida positiva visto que a Hessiana H(t, y) é definida negativa conforme análise feita na seção 3.1.2. Em função disto buscaremos tornar a matriz Hessiana definida positiva tendo como conseqüência a positividade da matriz Nβ já que [AT (β −1 I + Y S −1 )−1 A] já é positiva definida. A matriz hessiana possui todos os elementos da diagonal como valor definido X yr , onde Di é o conjunto de multiplicadores de lagrange referentes às como −2 r∈Di restrições disjuntivas associadas a operação i. Como os multiplicadores de Lagrange são variáveis não negativas então teremos os elementos diagonais sempre negativos. Portanto, selecionamos uma constante positiva λ que possa tornar estes elementos diagonais positivos pela substituição de H(t, y) por H(t, y) = H(t, y) + λI. Tomamos, então λ = 2| min hii |, assim a menor entrada diagonal de H(t, y) terá o valor de 1≤i≤no P 2 i∈Di yr . Como as entradas fora da diagonal possuem valor igual a 2yr esta mudança é o suficiente para garantir a positividade de H = H(t, y) + λI. Esta adaptação é possı́vel em função de todas as entradas não nulas serem múltiplas de 2. Assim, o que fizemos foi transformar a menor entrada diagonal num múltiplo não negativo de 2. O efeito desta mudança pode ser observado tomando-se a matriz Hessiana do problema exemplo 3 onde temos: −2y3 − 2y5 0 2y3 0 2y5 0 −2y6 0 2y6 0 H(t, y) = 2y3 0 −2y3 − 2y4 0 2y4 0 2y6 0 −2y6 0 2y5 0 2y4 0 −2y4 − 2y5 Método de Pontos Interiores e o Seqüenciamento Job-Shop Supondo arbitrariamente os valores das variáveis duais sendo y −16 0 6 0 10 0 −12 0 12 0 H(t, y) = 6 0 −14 0 8 0 12 0 −12 0 10 0 8 0 −18 62 = (1, 2, 3, 4, 5) teremos: Neste caso, a menor entrada diagonal é h55 = −18, tomando λ = 2| − 18| = 36 teremos H(t, y) sendo: 20 0 6 0 10 0 24 0 12 0 H(t, y) = 6 0 22 0 8 0 12 0 24 0 10 0 8 0 18 Consideremos um vetor genérico t = (t1 , t2 , t3 , t4 , t5 ) t ∈ R5 , então fazendo tT H(t, y)t, obtemos: 6(t1 + t3 )2 + 8(t3 + t5 )2 + 10(t1 + t5 )2 + 12(t2 + t4 )2 + 8t23 + 4t21 + 12t22 + 12t24 ≥ 0 ∀t ∈ R5 Desta forma podemos garantir que a matriz H(t, y) é definida positiva. Entretanto, este acréscimo diagonal (λ = 4| min hii |) pode ser excessivo, fazemos então, 1≤i≤no uso da decomposição de Cholesky para poder obter a menor perturbação possı́vel que garanta a positividade da matriz Normal Nβ . Multiplicamos então o valor de λ por um fator 0 < ξ < 1 de forma crescente até poder completar a decomposição Cholesky tendo na diagonal apenas elementos estritamente positivos. Um algoritmo sugestivo para esta mudança é apresentado no anexo B.1. 3.2.3 Um algoritmo de pontos interiores aplicado ao seqüenciamento job-shop Nesta seção apresentaremos alguns detalhes relativos a adaptação do método de pontos interiores à resolução de um problema de seqüenciamento job-shop como nos Método de Pontos Interiores e o Seqüenciamento Job-Shop 63 propomos a fazer. Para melhor compreensão dos ı́tens apresentados estaremos utilizando como ilustração dos passos mencionados o problema-exemplo 2. Transcrevemos mais uma vez a tabela descritiva de seus dados e a modelagem matemática adotada a fim de facilitar a posterior análise. Assim temos: produto operação duração máquina 1 1 3 1 1 2 5 2 2 3 7 2 Tabela 3.3: Dados do problema-exemplo 2 de job-shop. Após a modelagem adequada temos, M in. f (t) = t1 + t2 + t3 S.a. t2 − t1 − 3 ≥ 0 t22 + t23 − 2t2 t3 + 2t3 − 2t2 − 35 ≥ 0 t1 ≥ 0 t2 ≥ 0 (3.17) t3 ≥ 0 16 − t1 ≥ 0 16 − t2 ≥ 0 16 − t3 ≥ 0 A resolução dos ı́tens que se seguirão foi realizada com o uso do Scilab 3.0, que é um aplicativo matemático de uso livre. 3.2.3.1 Ponto de partida e parâmetros iniciais A determinação de um ponto de partida neste método é um aspecto impor- tante. Nota-se que é preciso garantir a factibilidade do ponto escolhido mas isto não é o suficiente. A tabela 3.4 apresenta resultados obtidos para a função objetivo após 1 e 20 iterações ao ser aplicado o MPI a alguns pontos. Tais pontos foram tomados a partir de uma escolha particular da direção dos arcos disjuntivos, que neste caso foi escolhido realizar a operação 3 e depois a operação 2 na máquina 2. Observa-se que os resultados ao longo das iterações difere mesmo para pontos Método de Pontos Interiores e o Seqüenciamento Job-Shop 64 Ponto inicial primeira iteração 20 iterações Variação Tipo de ponto (1,9,2) 11,08 14,36 + 3,28 Factı́vel (1,9,1) 10,54 10,05 -0,49 Est. factı́vel (3,10,3) 14,62 12,9 -1,66 Factivel (3,14,4) 20,6 20,18 -,42 Infavtı́vel (2,10,3) 13,6 11,83 -1,77 Factı́vel Tabela 3.4: Análise ponto inicial factı́veis. Alguns pontos possuem uma grande variação na primeira iteração, mas tal comportamento não é constante. Portanto, a escolha do ponto inicial é importante no desenvolvimento do MPI. Uma outra necessidade é a definição das variáveis de excesso s. Por definição podemos obter tais variáveis admitindo gr (t)geq0 e lembrando que é preciso que se tenha gr (t) − s = 0, com s > 0. Assim, note que as variáveis de excesso podem ser computadas tomando s0r = gr (t0 ). Por segurança para evitar pontos muito próximos ou contidos nas bordas da região factı́vel tomaremos as variáveis de excesso como: s0r = gr (t0 + θ) onde θ > 0 Dessa forma, teremos as variáveis de excesso estritamente positivas. Nota-se que, a variação do parâmetro θ exerce influencia nos resultados e deve ser escolhida com cuidado. Após a definição das variáveis primais, deveremos definir valores para as variáveis duais. A computação dessas variáveis precisa ser feita de forma que tenhamos A(t0 )T y − ∇f (t0 ) = 0 atendendo a primeira condição de otimalidade, como preconiza o método de pontos interiores. Sendo assim, obtemos o valor das variáveis duais resolvendo o sistema representado pela seguinte equação A(t0 )T y = ∇f (t0 ) (3.18) Este sistema é um sistema possı́vel com múltiplas soluções. No caso especı́fico do jobshop a matriz AT tem posto cheio e temos um grau de liberdade gl = r0 − 2n0 . O único cuidado a ser tomado é o de buscar uma solução em que as coordenadas de y sejam Método de Pontos Interiores e o Seqüenciamento Job-Shop 65 positivas. Consideramos as variáveis livres com um valor fixo e avaliamos a influência deste valor no progresso do algoritmo. Na análise seguinte, tomamos o ponto t0 = (2, 10, 3) e avaliamos após vinte iterações o resultado variando primeiro o parâmetro θ e depois fixamos o melhor valor deste parâmetro e variamos o valor das variáveis duais. O resultado é apresentado na tabela 3.5. Valor de θ Função Objetivo Ajute das variáveis duais Função Objetivo 1 13,12 1 13,61 2 13,58 2 12,89 3 12,89 3 12,90 4 12,10 4 13,26 5 12,13 5 13,35 Tabela 3.5: Análise dos parâmetros para definição das variáveis de excesso e variáveis duais Os valores usados para análise foram baixos devido ao tamanho do espaço de busca ser bem restrito. Percebe-se uma maior sensibilidade na escolha das variáveis duais. O parâmetro θ assumindo valor nulo não oferece resultados por permitir que alguma coordenada do vetor s seja nula. Desta fora obtemos as variáveis de excesso e duais dadas por: s= 10 5 7 15 8 18 10 17 2 0, 083 4 2 y= 2 2 2 2 Para iniciar o algoritmo, ainda será preciso definir o valor dos parâmetros µ, epsilon e β iniciais. Para isso, primeiro calcularemos o valor de ν(z 0 ) que oferece uma medida da distância entre a aproximação corrente e um provável ponto de KKT para o problema 3.5. Definiremos então valor de µ em função desta distância, como: µ = δν(z 0 ) onde 0 < δ < 1 Em seguida calcularemos o valor de νµ (z 0 ) e definimos β e ² Método de Pontos Interiores e o Seqüenciamento Job-Shop β ≥ 2µr0 66 ² = min{νm u(z 0 ), β1 } Neste exemplo que estamos considerando os valores obtidos tendo como ponto inicial t0 = (2, 10, 3) foram: µ = 14 ² = 0.004463 β = 224 A razão para essa definição destes parâmetros β, ² e µ será vista de forma mais clara na seção 3.3 onde analisaremos a convergência do método. 3.2.3.2 Encontrando as direções de busca Procuraremos as direções de busca (4t, 4s) resolvendo o sistema (3.15). Fa- zemos isto logo após o ajuste feito para garantir que a matriz Nβ seja definida positiva. Isto é feito da forma apresentada na seção 3.2.2. Garantindo a positividade de Nβ , pelo teorema 3.3 vimos que podemos garantir a positividade da matriz dos coeficientes M para o sistema 3.15. Sendo assim, usaremos a decomposição de Cholesky da matriz M para obter a sua inversa e conseqüentemente as direções primais (4t, 4s). Descobrimos em seguida a direção dual fazendo uso da expressão 4y = γ − S −1 Y 4s apresentada pelo teorema 2.25. Com este procedimento encontramos as direções de busca para uma nova aproximação de Newton e garantimos o decrescimento da função de mérito Lβ,µ (t, s, y) na direção primal, conforme mostraremos de forma ilustrativa com o exemplo usado nesta seção. Sobretudo nosso principal objetivo centra-se na demonstração matemática, que será realizada na seção 3.3. 3.2.3.3 Definindo o tamanho de passo Após o cálculo das direções de busca para o sistema de Newton 3.9 um algo- ritmo de MPI normalmente calcula um próximo passo (t, s, y) → (e t, se, ye) fazendo: e t = t + αp 4t se = s + αp 4s ye = y + αd 4y Método de Pontos Interiores e o Seqüenciamento Job-Shop 67 Onde αp e αd representam o tamanho de passo primal e dual. Em nosso caso estaremos definindo os passos primal e dual de forma que possamos garantir que as variáveis de excesso e duais se mantenham estritamente positivas, bem como, as variáveis originais do problema 3.5 sejam limitadas inferiormente. Assim estabeleceremos um tamanho máximo de passo como: p αmax ¸ · tr +κ sr = min 1; −κ 4sr : 4sr < 0; −κ 4tr : 4tr < 0 d αmax · ¸ yr = min 1; −κ 4yr : 4yr < 0 onde 0 < κ < 1. Como vimos na seção 3.1 o problema de seqüenciamento job-shop possui um espaço de busca não convexo além de não apresentar qualquer garantia de mı́nimo local ou global para pontos satisfazendo a condição de otimalidade de primeira ordem, que é o objeto de busca no método de pontos interiores. Diante destas questões aqui reforçadas, mostraremos que as direções primais (4t, 4s) são direções de decrescimento para a função de mérito Lβ,µ (t, s, y) e conseqüentemente permitem similar decrescimento para a função objetivo do problema original. Desta forma, estaremos buscando uma forma de garantir o decrescimento de Lβ,µ (t, s, y). p d Inicialmente selecionamos αp = αmax e αd = αmax e descobrimos o próximo candidato primal-dual e t = t + αp 4t; se = s + αp 4s; ye = y + αd 4y. Se ze = (e t, se, ye) não reduzir o valor da função de mérito ν(z) de um fator 0 < q < 1 então esta aproximação ze falha. Neste caso, mantemos a aproximação dual y e usamos a direção primal 4p = (4t, 4s) para descobrir uma nova aproximação. Mostraremos na seção 3.3 que a direção primal 4p = (4t, 4s) é uma direção de decrescimento para a função p ] um valor de αp de mérito Lβ,µ (t, s, y). Sendo assim, buscaremos no intervalo [0, αmax que atenda a condição de Armijo apresentada em anexo (A.3), ou seja, buscaremos αp de forma que: Lβ,µ (p + αp 4p, y) − Lβ,µ (p, y) ≤ ηαp < ∇Lβ,µ (p, y), 4p >; onde 0 < η < 1 Assim que o algoritmo descobrir um valor mı́nimo irrestrito pe para Lβ,µ (p, y) Método de Pontos Interiores e o Seqüenciamento Job-Shop 68 então buscará uma melhor aproximação para a variável dual através da fórmula ye = y + βρ(e t, se) Como mencionado, faremos do exemplo aqui utilizado apenas para ilustrar os objetivos da demonstração que se seguirá. Tomamos para tal o ponto inicial t0 = (2, 10, 3) já mencionado e seus respectivos valores de µ, ² e β. Os resultados são apresentados na tabela 3.6 Iteração Variáveis Primais Valor Objetivo νz Lβ,µ 1 ( 2.0000049, 10.024731, 1.574525) 13.599261 71.826185 198850.8 2 ( 2.0000293, 10.074941, 0.8261506) 12.901121 32.932195 99833.644 3 ( 2.0000307, 10.083898, 0.4332541) 12.517183 27.997772 46523.234 4 ( 2.0000336 , 10.09359 , 0.2269834) 12.320607 28.000595 29707.627 5 ( 2.0000362, 10.100711, 0.1186913) 12.219439 28.00354 23642.025 6 ( 2.0000367, 10.102784, 0.0618379) 12.164659 27.998493 21328.024 7 ( 2.0000377, 10.10527, 0.0319899) 12.137298 28.006775 20541.837 8 ( 2.0000383, 10.106532, 0.0163197) 12.12289 28.005997 20174.126 9 ( 2.0000384, 10.106951, 0.0080928) 12.115083 28.000285 20004.335 10 ( 2.0000385, 10.10724, 0.0037737) 12.111052 28.003013 19928.984 20 (2.0000386, 10.107604, - 0.0009905) 12.106652 28.001953 19850.207 Tabela 3.6: Exemplo de Aplicação do MPI ao problema de Job-Shop Uma outra observação que é pertinente ao caso do job-shop é o ajuste da Hessiana do Lagrangeano caso a matriz normal Nβ não seja definida positiva. No exemplo ora apresentado, foi preciso a partir da segunda iteração e o valor deste ajuste variou de λ = 0, 165418 até λ = 0, 021952 nas últimas iterações. Caso não fosse realizado tal ajuste, não só deixa de haver a redução do valor objetivo, até chegar o ponto de não haver solução para busca de novas direções. Finalmente, queremos através deste exemplo ilustrar os objetivos das demonstrações que se seguirão na seção 3.3. Mostraremos que a direção primal é uma direção de decrescimento para o Lagrangeano aumentado do problema em questão com a conseqüente redução da função objetivo. Demonstraremos também, que a solução convergirá para um provável ponto de otimalidade de primeira ordem para o problema original. Uma proposta sugestiva para o algoritmo do Método de Pontos Interiores em questão pode ser visto no anexo B.2. Análise de Convergência 3.3 69 Análise de Convergência Nesta seção faremos uma análise de convergência para o método proposto na seção 3.2.3 ao ser aplicado a um problema de seqüenciamento job-shop. Por ser um problema não convexo com as caracterı́sticas apresentadas na seção 3.1, não poderemos garantir uma convergência para um valor mı́nimo global. Estaremos buscando, entretanto, garantias de estarmos trilhando por um caminho de busca decrescente para a função de mérito Lβ,µ (t, s, y) e que, se possı́vel, convirja para pontos de otimalidade de primeira ordem para o problema 3.5. Estaremos nesta análise nos guiando por estudo semelhante feito por Griva, et al [28] para caso convexo. 3.3.1 Condições para a convergência global do problema de job-shop A fim de auxiliar na análise de convergência a ser realizada nas seções poste- riores verificaremos algumas caracterı́sticas do modelo matemático de seqüenciamento job-shop que estamos adotando. (C1) A função objetivo é limitada inferiormente por: f (t) ≥ f , ∀t ∈ Ω ⊂ Rn0 . A função objetivo f (t) é uma função linear e não possui limite inferior para todo t ∈ Rn0 , entretanto como estamos tratando com variáveis não negativas (t ≥ 0) podemos considerar f ≥ −∞ como sendo um limite inferior para f (t). Note que cuidados adicionais são tomados ao definir o tamanho de passo para uma próxima iteração a fim de manter t limitado inferiormente. (C2) O modelo atende a condição de Slater, ou seja, existe t ∈ Rn0 tal que gr (t) > 0, r = 1, ..., r0 . Esta condição é fácil de ser verificada bastando para isto tomar um seqüenciamento onde todas as operações do produto Pi são realizadas antes que as operações do produto Pi+1 aconteçam, para i = 1, ..., p. Apesar desta não ser, provavelmente, a melhor solução ela é uma solução factı́vel em que se tem gr (t) > 0. Assim, temos pontos que atendem a condição de Slater. Análise de Convergência 70 (C3) As restrições gr (t) satisfazem as seguintes condições: lim min gr (t) = −∞ ||t||→∞ 1≤r≤r0 Como vimos na seção 3.1 as restrições são todas lineares com exceção das restrições referentes às disjunções. De qualquer forma o terceiro e quarto grupo de equações da função g(t) oferecem um limite inferior para gr (t) quando ||t|| → ∞. (C4) O conjunto de restrições é formado por funções polinomiais em Rn0 sendo na sua maioria funções lineares exceto o conjunto das restrições disjuntivas. Desta forma podemos ver que a diferença do valor assumido pela função restritiva de maior e menor valor é finita. Desta forma, conforme observação feita por Vanderbei [28] assumimos que: s µ¯ ¯ ¶ ¯ ¯ ¯ ¯ ln ¯ max gr (t)¯ + 1 ≤ − min gr (t) + C, 1≤r≤r0 1≤r≤r0 ∀t ∈ Rn0 onde 0 < C < ∞ e depende do problema especı́fico em questão. Esta condição possui certa relevância no estudo teórico que estamos realizando. (C5) As Hessianas ∇2 f (t) e ∇2 gr (t), r = 1, ..., r0 satisfazem as condições de Lipschitz em Rn0 . Observação 3.2. Conforme visto na seção 3.1 não podemos garantir que o ponto de mı́nimo do problema 3.1 satisfaça as condições de otimalidade de segunda ordem. 3.3.2 Prova de Convergência Apresentaremos inicialmente alguns lemas necessários ao teorema principal que oferece condições para convergência de nosso problema de seqüenciamento job-shop. Lema 3.1. Assumindo as condições (C1) a (C4) existe pelo menos uma solução global para o problema 3.6 para algum µ > 0. Prova: Análise de Convergência 71 Reescrevamos o problema 3.6 como min B(t, µ) = f (t) − µ r0 X ln gi (t) i=1 t ∈ Rn0 No caso do job-shop estamos trabalhando com um conjunto factı́vel Ω limitado já que estabelecemos limites inferiores e superiores para todas as variáveis primais (ti ). Tomemos um ponto estritamente interior, ou seja, um ponto t que atenda a condição (C2). Tomemos, também, um valor constante Mµ = 2B(t, µ). Verificaremos que o conjunto Ωµ = {t ∈ Ω : B(t, µ) ≤ Mµ } é compacto. Primeiro note que Ωµ é um conjunto limitado pois é subconjunto de Ω que vimos ser limitado. Também temos que Ωµ é fechado, pois se trata da imagem inversa de um conjunto fechado por uma função contı́nua (B(t, µ)). Assim, concluı́mos que Ωµ é compacto. Como B(t, µ) é contı́nua, então pelo Lema de Weierstrass, existe um mı́nimo global tµ tal que B(t, µ) ≥ B(tµ , µ) no conjunto Ωµ e conseqüentemente no conjunto Ω. ¤ Como temos a garantia da existência de uma solução ótima global para o problema (3.6) então poderemos buscar uma solução para o nosso problema original (3.5), reduzindo o parâmetro µ tal que µ → 0. No entanto, estaremos utilizando o Lagrangeano aumentado para guiar nossa busca pela solução global. Como mencionado na seção 3.2, é preciso garantir que o Lagrangeano aumentado do problema 3.6 (Lβ,µ (t, s, y)) seja limitado inferiormente, assim teremos um ponto de sela na solução ótima. Esta análise é feita no lema a seguir. Lema 3.2. Para algum y ∈ Rr0 , β ≥ 2r0 µ e µ > 0, existe um mı́nimo global Mβ,µ (y) = Prova: min r t∈Rn0 ,s∈R+0 Lβ,µ (t, s, y) > −∞ Análise de Convergência 72 r0 r0 Sejam s ∈ R+ e t ∈ R+ fixos, sendo este último garantido pela condição (C2). Tome M = 2Lβ,µ (t, s, y). Assim, como a função Lβ,µ (t, s, y) é contı́nua, para a prova deste teorema basta mostrar que o conjunto n0 : Lβ,µ (t, s, y) ≤ M } zβ = {(t, s) ∈ Rn0 × R+ é um conjunto limitado e fechado como foi feito no teorema 3.1. É fácil ver que zβ é fechado, pois se trata da imagem inversa de um conjunto fechado por uma função contı́nua. Vamos agora verificar que zβ é limitado. Suponha por contradição que zβ é ilimitado. Desta forma, existe uma seqüência ilimitada {pl } = {(tl , sl )} definida em Rn0 × Rr0 tal que (i) t0 = t, s0 = s, (ii) liml→∞ ||pl − p0 || = ∞ (iii) liml→∞ Lβ,µ (tl , sl , y) ≤ M Verificaremos que uma seqüência que satisfaz as condições (i) e (ii) terá lim Lβ,µ (tl , sl , y) = ∞ (3.19) l→∞ o que contradiz (iii). Tomemos uma seqüência {pl } = {(tl , sl )} que satisfaça (i) e (ii). Usaremos também as seqüencias {ρli } = {sli −gi (tl )} e {φli } = { β2 (ρli )2 +yi ρli −µ ln(gi (xl )+ρli )}, i = 1, ..., r0 . Supondo f (t) sendo limitada inferiormente, podemos provar (3.19) apenas mostrando que lim l→∞ r0 X φli = ∞ (3.20) i=1 . Dividiremos a prova em dois casos. Primeiro consideraremos que seqüencia {tl } correspondente a {pl } é limitada. Neste caso a seqüencia {sl } é ilimitada. Neste caso podemos assumir que existe um conjunto não vazio de indices I ∗ para as restrições de forma que para cada ı́ndice i ∈ I ∗ tenhamos liml→∞ sli = ∞. Como a seqüencia {gi (tl )} é limitada para qualquer ı́ndice i = 1, ..., m então temos que liml→∞ ρi (tl , sl ) = ∞ para i ∈ I ∗ , e então: β lim φli = lim ( (ρli )2 + yi ρli − µ ln(gi (xl ) + ρli )) = ∞, l→∞ 2 l→∞ i ∈ I∗ Análise de Convergência 73 logo, podemos garantir que (3.19) é verdade. Vamos agora considerar o caso em que a seqüencia {tl } correspondente a {pl } seja ilimitada. Neste caso vamos estimar o valor de φli primeiramente para gi (tl ) ≤ 1, então φli = β l 2 β (ρi ) + yi ρli − µ ln(gi (tl ) + ρli ) ≥ (ρli )2 + yi ρli − µ ln(1 + ρli ) ≥ −B1 2 2 (3.21) para algum B1 ≥ 0 suficientemente grande. Se gi (tl ) ≥ 1, relembrando que sli = gi (tl ) + ρli > 0, nós temos: φli = β2 (ρli )2 + yi ρli − µ ln(gi (tl ) + ρli ) = β2 (ρli )2 + yi ρli − µ ln gi (tl ) − µ ln(1 + ρli ) gi (tl ) ρl ≥ β2 (ρli )2 + yi ρli − µ ln gi (tl ) − µ − µ gi (ti l ) ) ≥ β2 |ρli |2 − |yi ||ρli | − µ ln gi (tl ) − µ − µ|ρli | ≥ −µ ln gi (tl ) − B2 onde B2 é grande o bastante. Relembrando da condição (C4) analisada em relação ao modelo de job-shop adotado, nós obtemos µ ¶ l l −µ ln gi (t ) − B2 ≥ −µ ln max gi (t ) − B2 ¯ µ¯ ¶1≤i≤r0 ¯ ¯ ≥ −µ ln ¯¯ max gi (tl )¯¯ + 1 − B2 ≥ −µ(C − min gi (tl ))2 − B2 1≤i≤r0 1≤i≤r0 −µC 2 − B , se gi0 (tl ) ≥ 0 2 = −µ(C − gi0 (tl ))2 − B2 ≥ −µ(C + ρl − B , se g (tl ) ≤ 0 i0 2 i0 ≥ −µ max{c2 , (C + ρi0 )2 } − B2 onde i0 é o ı́ndice da restrição tal que gi0 = min gi (tl ). Como lim 1≤i≤r0 min gi (t) = ||t||→∞ 1≥i≥r0 −∞ e a seqüencia {tl } é ilimitada, temos: lim ρi0 (t) = +∞ ||t||→∞ Então para toda seqüencia com l suficientemente grande e, na pior das hipóteses, supondo que gi0 (tl ) < 0 nós temos: φli ≥ −µ(C + ρli0 )2 − B2 (3.22) Análise de Convergência 74 Combinando as equações (3.22) e (3.21), nós obtemos para l suficientemente grande: Pr0 i=1 = φli0 + P i6=i0 :gi (tl )<1 φli + P i:gi (tl )≥1 φli ≥ β2 (ρli0 )2 + yi ρli0 − µ ln ρli0 − r0 B1 − (µ(C + ρli0 )2 + B2 )r0 Como estamos tomando β > 2µr0 isto garante que a condição (3.20) é verdadeira, logo a equação (3.20) também o é. Desta forma encontramos uma contradição em relação a condição (iii) postulada inicialmente. Assim podemos concluir que zβ é compacto e Lβ,µ (tl , sl , y) possui um mı́nimo global em Rn0 × Rr+0 . ¤ O lema seguinte apresenta condições necessárias para que a direção primal 4p = (4t, 4s), obtida como solução do sistema (3.13) seja uma direção de decrescimento para Lβ,µ (t, s, y). Lema 3.3. Para algum β > 0, existe θ > 0 tal que para alguma aproximação primalr0 dual (t, s, y) com s, y ∈ R+ , a direção primal 4p = (4t, 4s), obtidas como solução do sistema (3.13) com o ajuste feito na matriz N² (t, s, y) dado pela equação (3.16) e tendo como parâmetro ² = β1 , é uma direção de descida para Lβ,µ (t, s, y) e (∇p Lβ,µ (t, s, y), 4p) ≤ −θ||4p||2 Prova: 1 , como mencionado na β seção 3.2.2, na demonstração do teorema 2.4 vimos que o sistema (3.13) pode ser Assumindo o parâmetro de regularização dual ² = reescrito em função das direções primais como: −σ + βA(t)T ρ 4t H(t, y) + βAT A −βA(t)T = −1 −1 S γ − βρ 4s −βA(t) S Y + βI Por outro lado o gradiente de Lβ,µ (t, s, y) com respeito a t e s é dado por: ∇t Lβ,µ (t, s, y) = σ − βAT ρ ∇s Lβ,µ (t, s, y) = −S −1 γ + βρ Análise de Convergência 75 Portanto, assumindo que a matriz Nβ = H +AT [β −1 I +Y −1 S]−1 A seja positiva definida conforme ajuste realizado pela equação (3.16), nós temos então pelo teorema 3.3 que T ∇t Lβ,µ (t, s, y) ∇s Lβ,µ (t, s, y) 4t 4s = − T 4t T H + βA A −βA 4s −βA S −1 T Y + βI 4t 4s ≤ −α max{||4t||, ||4s||}2 onde α depende dos parâmetros λN e β que são respectivamente os menores autovalores de Nβ e de [S −1 Y + βI] respectivamente. ¤ Lema 3.4. Considere as séries {sk }, onde ∞ X ai que é uma seqüência das maiores somas parciais i=0 sk = sup l X 0≤l≤k i=1 ai é ilimitada, monótona e crescente, isto é lim sk = +∞ k→∞ Também considere a seqüência {bk } com bk ≥ 1 sendo monótona crescente e tal que ∞ X lim bk = +∞. Então para a série ai bi da seqüência das maiores somas parciais de k→∞ {pk }, onde i=0 pk = sup l X 0≤l≤k i=1 ai bi é também monótona e crescente, ou seja, lim pk = +∞ k→∞ Este lema será usado na demonstração do 3.4 e sua prova pode ser encontrada no anexo do artigo de Griva et al [28]. Teorema 3.4. Dentro das condições (C1)-(C5) assumidas para este modelo matemático do problema de seqüenciamento job-shop, o algoritmo de pontos interiores gera uma Análise de Convergência 76 seqüencia primal-dual {z u = (tu , su , y u )} tal que algum ponto limite t da seqüencia primal {tu } é ponto de otimalidade de primeira ordem para a minimização da norma do vetor de violação das restrições v(t) = (v1 (t), ..., vr0 (t)) onde vi (t) = min{gi (t), 0}: V (t) = ||v(t)|| Se em particular, V (t) = 0 então t = t∗ é um ponto de otimalidade de primeira ordem para o problema 3.5. Prova: Tomemos z ∗ = (t∗ , s∗ , y ∗ ) sendo um ponto de mı́nimo local ou global para o problema (3.5) e tomemos a seqüência {z l }, onde z l = (tl , sl , y l ) = (pl , y l ), sendo gerada pelo algoritmo a partir de uma aproximação inicial z 0 . O modelo estudado não apresenta garantias de alcançar um ponto de mı́nimo local ou global. Como vimos trata-se de um problema não convexo e, em particular, tendo a Hessiana do Lagrangeano sendo definida negativa em todo o espaço de busca. Sendo assim, o algoritmo proposto minimiza a função de mérito Lβ,µ (t, s, y) em p = (t, s). Vimos pelos lemas 3.2 e 3.3 associados à regra de Armijo (A.3) que para um valor fixo dos multiplicadores de Lagrange y e uma escolha adequada do parâmetro β a direção primal 4p = (4t, 4s) satisfaz a seguinte condição: (∇p Lβ,µ (p, y), 4p) ≤ −α||4p||2 Portanto, o algoritmo pode eventualmente decrescer até uma aproximação pe que um ponto de otimalidade de primeira ordem para a minimização irrestrita de Lβ,µ (t, s, y). Após encontrar esta aproximação o algoritmo muda os multiplicadores de Lagrange por esta fórmula y l+1 := y l + βρ(e t, se) (3.23) se esta mudança reduzir a função de mérito νµ (z) por um fator 0 < q < 1. De outra forma, o algoritmo incrementa o valor do parâmetro de penalidade β e continua a minimização de Lβ,µ (t, s, y) em p = (t, s). Nosso objetivo é verificar se algum ponto limite da seqüência gerada pelo algoritmo é um ponto de otimalidade de primeira ordem para o problema (3.5), ou Análise de Convergência 77 seja: lim ν(z l ) = 0, l→∞ lim sl ≥ 0, l→∞ lim y l ≥ 0. l→∞ Temos dois possı́veis cenário para análise. O primeiro ocorre quando a minimização da função de mérito Lβ,µ (p, y l ) em p para valores grandes de β é seguida da alteração dos multiplicadores de Lagrange. Isso ocasiona uma trajetória próxima da solução do problema com barreira (3.6) devido às propriedades de convergência global do algoritmo do Lagrangeano aumentado [8, 34]. Nesse caso o algoritmo reduz o valor da função de mérito νµ (z). Portanto, o valor da função de mérito ν(z) pode ser estimado por ν(e z ) ≤ νµ (e z ) + µ = νµ (e z ) + δτ Onde τ é o valor da função de mérito ν(z) da iteração anterior e 0 < δ < 1. Portanto, a redução da função de mérito νµ (z) garante a redução de ν(z). O segundo cenário acontece quando o algoritmo não muda os multiplicadores de Lagrange y pela fórmula (3.23) já que tal mudança não reduziria o valor da função de mérito νµ (z). Portanto o algoritmo transforma-se numa seqüência de minimização irrestrita do Lagrangeano aumentado Lβ,µ (t, s, y) na direção primal p, seguido pelo incremento sucessivo do parâmetro de penalidade β. Mostraremos então que algum ponto limite desta seqüência primal {tl } é na verdade um ponto de otimalidade para minimização da norma do vetor de violação de restrições v(t) = (v1 (t), ..., vr0 (t)) onde vi (t) = min{gi (t), 0}: V (t) = ||v(t)|| Primeiro mostraremos que a seqüência primal {tl } é limitada. Considere a seqüência monótona crescente 2ro µ ≤ β 0 ≤ β 1 ≤ ... ≤ β k ≤ .... Reescrevamos a função Análise de Convergência 78 de mérito Lβ,µ (p, y) como β T ρ ρ 2· µ ¶ ¸ 0 β − β 1 β = (1 + β − β 0 ) Lµ (p, y) + ρT ρ + ρT ρ 1 + β − β0 2 2(1 + β − β 0 ) 1 = [ξh1 (p, y) + (1 − ξ)h2 (p, y)] ξ 1 = θξ (p, y) ξ Lβ,µ (p, y) = Lµ (p, y) + Onde: 1 1 + β − β0 r0 X Lµ (p, y) = f (t) − µ ln si + y T ρ, ξ = i=1 h1 (p, y) = Lµ (p, y) + 0, 5βρT ρ, h2 (p, y) = 0, 5ρT ρ θξ (p, y) = σh1 (p, y) + (1 − ξ)h2 (p, y) Portanto, a seqüência de minimização irrestrita da função de mérito Lβ l ,µ (p, y) em p para a seqüência não decrescente 2ro µ ≤ β 0 ≤ β 1 ≤ ... ≤ β k ≤ ... é equivalente a minimização irrestrita da função θξ (p, y) em p para a seqüência não crescente 1 = ξ 0 ≥ ξ 1 ≥ ... ≥ ξ k > 0. Suponha por absurdo que a seqüência primal {pl } seja ilimitada. Relembrando que lim min gi (t) = −∞ ||t||→∞ 1≤i≤m pela condição (C3) e como {pl } é ilimitada, então a seqüência {hl2 }, onde hl2 = h2 (pl , y) é ilimitada e lim sup hl2 = +∞ k→∞ 0≤l≤k (3.24) Vamos renomear a seqüência {pl } como: p0 = pq0 , pq0 +1 , ..., pq0 +d0 = pq1 , pq1 +1 , ..., pq1 +d1 = ... = pqk , pqk +1 , ..., pqk +dk , ... Para todo pl , l = qk , ..., qk + dk corresponde ao mesmo valor de ξ k . Para algum k, e para todo l = qk , ..., qk + dk − 1 nós temos ξ k hl+1 + (1 − ξ k )hl+1 ≤ ξ k hl1 + (1 − ξ k )hl2 1 2 Análise de Convergência 79 , logo: hl1 − hl+1 1 1 − ξ k l+1 ≥ (h2 − hl2 ) k ξ (3.25) Substituindo na equação (3.25) todo l = qk , ..., qk + dk − 1 nós obtemos: hq1k − hq1k +dk ≥ 1 − ξ k qk +dk (h2 − hq2k ) ξk (3.26) Após a soma da inequação (3.26) para todo k = 0, 1, ..., j e tendo em mente q q que hq1k +dk = h1k+1 e hq2k +dk = h2k+1 para k = 0, 1, 2..., j − 1, nós obtemos h01 − q +d h1j j ≥ j X 1 − ξk ξk i=1 (hq2i +di − hq2i ) (3.27) Assumindo que l = qj + dj relembramos que lim sup k→∞ 0≤l≤k hl2 = lim sup k→∞ 0≤l≤k j X (hq2i +di − hq2i ) = +∞ i=1 Como a seqüência {ξ k } é monotonicamene decrescente para zero, a seqüência k 1−ξ } é monótona, crescente e ilimitada. Portanto, pelo lema 3.4 do anexo nós ξk temos: j X 1 − ξ i qi +di − hq2i ) = +∞ (h2 lim sup i k→∞ 0≤l≤k ξ i=1 { Utilizando (3.27) obtemos: lim sup (h01 − hl1 ) = +∞ k→∞ 0≤l≤k ou seja, lim inf hl1 = −∞ k→∞ 0≤l≤k que contradiz o lema 3.2. Portanto, podemos concluir que a seqüência primal {pl } gerada pelo algoritmo é limitada. Agora falta mostrar que qualquer ponto limite da seqüência primal {tl } gerada pelo algoritmo é na verdade um ponto de otimalidade de primeira ordem para minimização da norma do vetor de violação de restrição v(t) = (v1 (t), ..., vr0 (t)) onde vi (t) = min{gi (t), 0}: V (t) = ||v(t)|| Análise de Convergência 80 Uma condição necessária para o par primal pe = (e t, se) minimizar a função de mérito Lβ,µ (p, y) em p é o seguinte sistema ∇f (t) − A(t)T (y + βρ) = 0 −µS −1 e + y + βρ = 0 (3.28) Se ze = (e t, se, ye), onde ye = y + βρ satisfaz o sistema (3.28) então a única razão para que a função de mérito νµ (e z ) não seja nula é a infactibilidade, ou seja, ρ(e t, se) 6= 0. Consideremos a seqüência {z l }, z l = (tl , sl , y l ) gerada pelo algoritmo. A seqüência {y l } já não muda mais, então assumimos que y l = y para l ≥ l0 . De acordo com o algoritmo para a seqüência de aproximações primais na busca de um valor mı́nimo para a função de penalidade Lβ,µ (t, s, y), nós temos: ∇f (tk ) − A(tk )T (y + β k ρ(tk , sk )) = Υkn0 −µSk−1 e + y + β k ρ(tk , sk ) = Υkr0 (3.29) onde lim Υkn0 = 0 e lim Υkr0 = 0. k→∞ k→∞ Se a seqüência primal {tk , sk } satisfaz o sistema (3.30) então satisfará o seguinte sistema: Υkn0 ∇f (tk ) A(tk )T y k k k − + A(t )ρ(t , s )) = βk βk βk k k k S Υr0 −µ + S y + S k ρ(tk , sk ) = k β βk (3.30) Como a seqüência {(tk , sk )} é limitada, nós temos: lim A(tk )ρ(tk , sk ) = 0, k→∞ lim (ski − gi (tk ))ski = 0, i = 1, ..., r0 k→∞ (3.31) lim ski ≥ 0, i = 1, ..., r0 k→∞ Observe que as condições (3.31) são na verdade as condições de otimalidade de primeira ordem para o problema min ||s − gi (t)||2 , s.a. s ≥ 0. Por sua vez a solução (t∗ , s∗ ) do problema (3.32) minimiza V (t) (3.32) Conclusão 81 ¤ Note que a garantia oferecida por este teorema é de que há convergência para pontos que minimizem a violação das restrições originais do problema 3.5 à medida que minimiza a função objetivo deste mesmo problema, ao minimizar a função de mérito Lβ,µ (t, s, y). Conclusão Um problema de seqüenciamento job-shop certamente constitui um desafio como problema de programação matemática. Pela análise do modelo contı́nuo adotado, percebe-se a dificuldade a ser enfrentada primeiro por se tratar de um problema não convexo e, além disto, por não podermos garantir a minimalidade nem mesmo local para pontos de otimalidade de primeira ordem. Como o método de pontos interiores faz uma busca por pontos de otimalidade de primeira ordem para o problema em questão, foi preciso guiar esta busca a fim de garantir o decrescimento da função objetivo. Para tanto, utilizamos o Lagrangeano aumentado que foi decrescido à medida que buscamos pontos estacionários. Dentre as várias mudanças que se fizeram necessárias, destacamos aquela feita na matriz Hessiana do Lagrangeano. Apresentamos o impacto que esta mudança poderia trazer na convergência do problema dual e adotamos então um processo de regularização da variável dual além de maior cuidado na variação desta variável. Apesar de não podermos garantir a convergência global o resultado é significativo já que estabelece um direção de busca decrescente para a função objetivo respeitando as restrições originais do problema. Isto é relevante tendo em vista a dificuldade de resolução do problema de job-shop. Pelas caracterı́sticas detalhadas em relação a modelagem contı́nua adotada, é possı́vel perceber a relevância de se tomar cuidados especiais para resolução deste modelo. Conclusão Geral Inicialmente, verificamos através da descrição do problema de job-shop, caminhos diferentes para se tratar esse problema. A modelagem contı́nua permitiu uma abordagem matemática direta do aspecto combinatório desse problema. Pelo estudo desse modelo foi possı́vel visualizar a dimensão da dificuldade imposta na resolução de problemas de seqüenciamento job-shop. Por se tratar de um problema de programação não conexo, não conseguimos garantias de obtermos um ponto de mı́nimo global para o problema em questão. Contudo, obtemos uma direção de decrescimento para a função objetivo à medida que buscamos pontos de otimalidade de primeira ordem. Mostramos, também, que as mudanças feitas no método de pontos interiores permitiu encontrar essas direções primais decrescentes para o Lagrangeano aumentado que foi utilizado como função de mérito guiando o algoritmo por direções que permitem a redução da função objetivo escolhida para o seqüenciamento. Devido a estrutura particular do job-shop foi possı́vel um ajuste relativamente fácil da Hessiana do Lagrangeano. O adequado ajuste da Hessiana tornando a matriz normal Nβ definida positiva é fundamental para o decrescimento da função objetivo ao longo das iterações. Uma pequena amostra disto pode ser visto no problema-exemplo 2 visto anteriormente. Em casos gerais, ajuste similar pode ser feito conforme proposto por Griva et al [28]. Neste sentido, a associação do método de pontos interiores com as técnicas de otimização envolvendo o Lagrangeano aumentado, como foi feito nesse caso, pode ser estendido a outros caso de programação não convexa. O principal objetivo deste trabalho, foi realizar uma análise matemática fundamentando a utilização do método de pontos interiores na resolução de um problema de seqüenciamento job-shop. Desta forma, consideramos como principal contribuição o Conclusão Geral 83 fato de poder apresentar resultados teóricos que apontam numa direção positiva para prática em casos combinatórios como este. Não foi nossa proposta uma implementação computacional adequada, mas diante do que apresentamos, tal tarefa pode ser realizada devidamente fundamentada em bases matemáticas. Também deixamos claro as dificuldades inerentes ao próprio problema que permanecem como um desafio para a efetiva solução deste. Uma idéia disto é possı́vel sentir através da resolução de um pequeno exemplo como foi o nosso caso. Acreditamos acima de tudo, que as análises aqui realizadas servem de ponto de partida para várias outras pesquisas futuras envolvendo o método de pontos interiores como alternativa para problemas de seqüenciamento job-shop. Assim, consideramos como a principal motivação para um trabalho futuro, a busca de uma implementação computacional mais adequada da metodologia aqui apresentada. Para efetivação deste intento, será preciso testes práticos a fim de adequar os parâmetros a casos gerais. Dentre outras coisas, destacamos como um dos ı́tens a ser analisado, o estudo de formas efetivas para obtenção de um ponto de partida interior adequado. Como visto na seção 3.2.3 pontos factı́veis distintos podem apresentar resultados diferentes. Em nossa análise do ponto de partida consideramos inicialmente as sugestões apresentadas tanto por Wright [57] como por Vanderbei e Shanno [56]. Entretanto, pela breve experiência no caso prático percebemos a necessidade de mudança, que foi feito no ajuste da variável de excesso. Esta escolha adequada das variáveis de excesso e variáveis duais é realçada no exemplo ora citado. Neste caso particular, como o espaço de busca é muito pequeno a convergência logo se torna lenta por se aproximar das extremidades da região factı́vel e isto precisa ser estudado de forma mais ampla para casos de maior dimensão. Vemos também, que seria útil agregar heurı́sticas adaptativas como algoritmo genético para esta auxiliar na melhor seleção do ponto inicial. Gostarı́amos ainda de destacar duas outras possibilidades para estudo. Primeiramente, em virtude da grande complexidade computacional de problemas de job-shop, vemos como promissora a associação desta metodologia com métodos de decomposição. Nesse sentido, temos a proposta feita por Alves [3] que utiliza as técnicas de Relaxação Lagrangeana para acoplar em um nı́vel coordenador os subproblemas obtidos pela decomposição feita através de técnicas da Tecnologia de Grupos. Nessa proposta, os Conclusão Geral 84 subproblemas também constituem problemas de job-shop, mas de menor dimensão. Dessa forma, a metodologia de pontos interiores poderia ser usada como ferramenta de resolução desses subproblemas. Por fim, uma outra abordagem a ser considerada seria a utilização de uma modelagem linear para o problema de job-shop o que permitiria a utilização de outras versões de método de pontos interiores que apresentam, nesse caso, uma convergência super-linear (Wright [57], Mehrotra [39]). Entretanto, o aspecto combinatório, que vimos como uma das caracterı́sticas mais desafiadoras desse problema, deveriam ser tratadas por heurı́sticas como algoritmo genético e simulated annealing ou por métodos de Branch-and-Bound. Bibliografia [1] Adams, J.; Balas, E. e Zawack, D. (1988) “The shifting bottleneck procedure for job shop scheduling”. Management Science, 34, 391-401. [2] Adler, I.;Karmarkar, N.; Resende, M.; Veiga, G.(1989) “An implementation of Karmarkar algorithm for linear programming”. Mathematical Programming 44,297-332. [3] Alves, I. C. (2000)“Aplication de la Technologie de Groupes Et de la Relaxation Lagrangienne au Probleme D’Ordennancement de Type Job-Shop”. Tese de Doutorado, Universitè Blaise Pascal. [4] Akrotirianakis, I.; Rustem, B.(1997)“A Globally Convergent Interior Point Algorithm for General Non-Linear Programming Problems”. Technical Report 97/14, Department of Computing, Imperial College of Science, Technology and Medicine, London. [5] Azevedo, A.T.; Soares, S.; Oliveira, A.R.L.; Carvalho, M.F.H.(2002)“Métodos de Pontos Interiores Aplicados a Problemas de Multifluxo com Restrições Adicionais”. Tendências em Matemática Aplicada e Computacional, 3, No. 1, 41-50. [6] Baker, K.R. (1974), “Introduction to sequencing and scheduling”. John Wiley e Sons, New York, USA. [7] Barbosa, C.B. (2003)“Planejamento do Tratamento por Radioterapia Através de Método de Pontos Interiores ”. Dissertação de Mestrado, USP - Instituto de Ciências Matemáticas e de Computação . Referências Bibliográficas 86 [8] Bazaraa, M.S.; Jarvis, J.J.; Sherali, H.F.(1990)“Linear Programming and Network Flows”. John Wiley e Sons, New York, USA, 380-418. [9] Benson, H.; Shanno, d.; Vanderbei, R.(2002)“Interior Point Methods for Nonconvex Nonlinear Programming: Filter Methods and Merit Functions”. Computational Optimization and Applications, 23:257-272. [10] Blazewicz, J.; et al.(1996)“Scheduling Computer Manufactoring Process”. Springer-Vertag, Berlin. [11] Blazewicz, J.(1987)“Selected Topics in Scheduling Theory”. Annals of Discrete Mathematics, vol.31, 1-60. [12] Carlier, J.; Pinson, E.(1987)“ A Branch and Bound Method for the Job-Shop Problem”. Technical Report Institut de Mathémathiques Appliquées, Université de Angers. [13] Carlier, J.; Pinson, E.(1989)“ An Algorithm for Solving the Job- Shop Problem”. Management Science, vol. 35, No. 2, 164-176. [14] Castro, J.(2003): “Un Algoritmo de Punto Interior para Flujos Multiartı́culo Cuadráticos”. XXVII Congresso Nacional de Estadı́stica e investigacı́on Operativa, Lleida,Itália. [15] Castro, J.(2000): “A Specialized Interior-point Algoritm for Multicommodity Network Flows”. SIAM J. on Optimization 10(3),852-877. [16] Castronuovo, E.D.; Campagnolo, J.M.; Salgado, J.(2000)“A Largest-Step Central-path Algorithm Applied to the Optimal Power Flow Problem”. SBA Controle e Automação vol. 11 no. 3, 176-181. [17] El-Bakry, A.S.; Tapia, R.A.; Tsuchida, T.; Zhang, Y(1996)“On the Formulation and T Theory of the Newton Interior-Point Method for Nonlinear Programming”. Journal of Optimization Theory and Application, Vol. 89, No. 3, pp. 309-332. [18] Fiacco, A.V.; McCormick, G.P.(1968),“ Nonlinear Programming: Sequential Unconstrainted Minimization Techniques”. Research Analysis Corporation, McLean Virginia. Referências Bibliográficas 87 [19] Fisher, M. L. (1973) “Optimal solution of scheduling problems using Lagrange multipliers: parte I”, Oper. Res, Vol21,1114-1127. [20] 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. [21] 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. [22] Freund, R.M.;Mizuno, S.;(1996),“Interior Point Methods: Current Status and future directions”. Optima, 51,1-9. [23] Fritzsche, Helmut(1978)“Programação Não-Linear: Análise e Métodos”. São Paulo: Editora Edgard Blücher. [24] Garcia, H. et Proth, J.M.(1985)“Group Technology in Production Management: The Short Horizon Planning Level”. Appl. Stoch. Meth. and Data Analys.,vol. 1, No. 1, 25-34. [25] Goldberg, D.E.(1989) “Genetic Algorithms in Search: Optimization and Machine Learning”. Addison-Wesley, Reading, MA. [26] Gondzio, J.; Sarkissian, R. e Vial, J.P.(1995) “ Using an Interior Point Method for the Master Problem in a Decomposition Approach”.European Journal of Operation Reseach, 101, 577-587 [27] Granville, S.(1994) “Optimal Reactive Dispacht through Interior Point Method”. IEEE Trans. on Power Systems, vol.9, no. 1, pp.136-146. [28] Griva, I.; Shanno, D.F.; Vanderbei, R.J.(2004) “Convergence Analysis of a Primal-Dual Interior-Point for Nonlinear Programming”. Technical Report, Princeton University, Department ORFE; Rutgers University, RUTCOR. [29] Jain, A.S.; Meeran, S.(1998)“Deterministic Job-Shop Scheduling: Past, Present and Future”. European Journal of Operational Research, Vol. 113, pp. 390434. Referências Bibliográficas 88 [30] Johnson, D.S.; Sethi, R. e Garey, M.R.(1976)“The Complexity of Flowshop and Jobshop Scheduling”. Mathematics of oeration research, vol.1. [31] Karmarkar, N.(1984) “A new polinomial-time algorithm for linear programming”. Combinatórica, Vol. 4, No 4, 373-395. [32] Kranich, E.(1991)“Interior Point Methods for Mathematical Programming : A Bibliographi”. Diskussionsbeittrag, 171, Germany. [33] Kusiak A. (1989)“ Knowledge -based systems in manufacturing ”, Taylor & Francis, New York. [34] Luenberger, D.G.(1984)“Linear and Nonlinear Programming”. Addison-Wesley Publishing Company. [35] Lenstra, J.K.; Rinooy Kan, A.H.G. (1977)”Complexity of machine scheduling problem”. Annals of Discrete Mathematics, vol.1, pp.343-363. [36] Mahey, P.(1987)“ Programação Não Linear: Uma Introdução à Teoria e aos Principais Métodos”. Rio de Janeiro: Campus. [37] Megiddo, N.(1987)“Pathways to the Optimal set in linear Programming”. Progress in Mathematical Programming: Interior Point and Related Methods Springer, New York, pp. 131-158. [38] Mehrotra,S.(1992) “On the Implementation of a Primal-dual Interior Point Method”. SIAM J. Optim. 2, 575-601. [39] Mehrotra,S.(1996) “Asymptotic convergence in a generalized method predictorcorrector”. Mathematical programming,74,11-28. [40] Muth, J.F.; Thompson, G.L.(1963). “Industrial Scheduling”. Prentice Hall, Englewood Cliffs, N.J. [41] Nesterov, Y.; Nemirovskii, A.S.(1994) “ Interior Point Polynomial Methods in Convex Programming: Theory and Applications”. SIAM, Philadelphia, PA. [42] Pinson, E.(1988)“Le Problème de Job-Sop”. Thèse de doctorat, Universitè Paris. Referências Bibliográficas 89 [43] Potra,F. A.; Wright, S.J. (2000)“Interior-point methods”.Journal of Computational and Applied Mathematics, 124, 281-302. [44] Ramos, A. D.(2002)“Método do Subgradiente Aplicado ao Job-Shop Decomposto pela Tecnologia de Grupo e Relaxação Lagrangeana”. Dissertação de Mestrado, Universidade Federal da Bahia. [45] Renegar, J.(1988)“ A Polynomial-time Algorithm, Based on Newnton’s Method, for Linear Programming”. Mathematical Programming, 40, 59-93. [46] Santana, A. S.(2003)“Método de Decomposição de Dantzig-Wolfe Aplicado ao Problema Combinatório de Job-Shop”. Dissertação de Mestrado, Universidade Federal da Bahia. [47] Schaal, A.; M’Silti, H.; Tolla, P. (1993) “Modélisation et Systèmes Interactifs de Stocksliés”. Technical Report, 117, Lamsade, Université Paris-Dauphine. [48] Schaal, A. (1997) “Une Approche Hybride de Résolution de Problèmes Linéaires en Nombres Entiers : Méthodes Intérieures et Méta Heuristiques”. PhD Thesis, Univeristé Paris-Dauphine. [49] Schaal, A.; M’Silti, H.; Tolla, P. (1997) “Une Approche Hybride de Résolution de Problèmes Linéaires en Nombres Entier”. Technical Report, 145, Lamsade, Université Paris-Dauphine. [50] Schaal, A.; M’Silti, H.; Tolla, P. (1997) “Comparison of Simulated Annealing and Genetic Algorithm Whith a Hybrid Method for General Integer Problems”. Technical Report, 147, Lamsade, Université Paris-Dauphine. [51] Schaal, A.; M’Silti, H.; Tolla, P. (1999) “Meta Heuristics Diversification of Generalised Job-Shop Scheduling Based upon Mathematical Programming Techniques”. D.E.I.S. Universitá Di Bologna. [52] Strusevich, V.A.(1997) “Shop scheduling problems under precedence constraints”. Annals of Operations Research, 69. [53] Sousa, V.A.; Costa, G.R.M.(2001) “Aplicação dos Métodos de Pontos Interiores na resolução de Problemas Não Lineares, Não Convexos e de Grande Porte”. XXXIII SBPO - Simpósio Brasileiro de Pesquisa Operacional. Referências Bibliográficas 90 [54] Sousa, V.A.; Costa, G.R.M.(2003) “Um método para Determinação das Barras Candidatas à Alocação de Reativos”. X Encuentro Regional Latinoamericano de la Cigré, Puerto Iguazú, Argentina. [55] Thompson, G.L.; Muth, J.F. (1963)“Industrial Scheduling”. Garnegie Institute of Technoly, 187-191. [56] Vanderbei, R.J.; Shanno, D.F. (1999)“An Inerior-Point Algorithm for Nonconvex Nonlinear Programming”. J. Comput. Optm. Appl., 13, 231-253. [57] Wright, S.J.(1997)“Primal-Dual Interior-Point Methods”. SIAM, Philadelphia, PA. [58] Yamada, T.; Nakano, R.(1997). “Genetic Algorithms for Job-Shop Scheduling Problems”. Proc. of Modern Heuristics for Decision Suport, pages 67-81, UNICOM seminar, 18-19 March 1997, London. [59] Zwavaneld, C.M.; Van Wassenhove, L.N.; Sevast Javanov, S.V.; Potts, C.N. (1995)“The two-stage assembly scheduling problem: Complexity and Approximation”. Operation Research, vol. 43. [60] Zhao, G.(1996)“Interior Point Methods With Decomposition For Linear Programs”. Department of Mathematics National University of Singapoure. Anexo A Tópicos de Programação Não-Linear O objetivo neste anexo é apresentar alguma definições e teoremas referentes a programação não linear que são importantes no escopo deste trabalho. As definições aqui contidas têm como base os livros de Bazaraa [8] e Luenberg [34]. A.1 Tipos de Funções Definição A.1. Seja S ∈ <n um conjunto convexo não vazio e, f : S → R, então podemos dizer que: • A função f é côncava em S se, dados x1 , x2 ∈ S então f [λx1 + (1 − λ)x2 ] ≥ λf (x1 ) + (1 − λ)f (x2 ) para cada λ ∈ (0, 1). • A função f é convexa em S se, dados x1 , x2 ∈ S então f [λx1 + (1 − λ)x2 ] ≤ λf (x1 ) + (1 − λ)f (x2 ) para cada λ ∈ (0, 1). Tópicos de Programação Não-Linear 92 • A função f é dita pseudoconvexa em x1 , x2 ∈ S se ∇f (x1 )T (x2 − x1 ) ≥ 0 implicar que f (x2 ) ≥ f (x1 ). Observação A.1. Uma função convexa é pseudoconvexa conforme demonstrado em [8]. Teorema A.1. Seja S ∈ <n um conjunto convexo não vazio e, f : S → R sendo duplamente diferenciável em S. Então, f é convexa se e somente se a sua matriz hessiana for positiva semidefinida para cada ponto de S. Analogamente, ela será côncava se e somente se a sua matriz hessiana for negativa semidefinida. Teorema A.2. Seja S ∈ <n um conjunto convexo não vazio e f : S → R sendo diferenciável em S. Então, f é convexa se e somente se f (y) − f (x) ≥ ∇f (x)T (y − x) para qualquer x, y ∈ S. Analogamente, ela será côncava se e somente se f (y) − f (x) ≤ ∇f (x)T (y − x) para qualquer x, y ∈ S Corolário A.1. Seja S ∈ <n um conjunto convexo não vazio e f : S → R linear, então f é convexa e côncava simultaneamente. As demonstrações dos teoremas A.1 e A.2 podem ser encontradas em Bazaraa [8]. A.2 Condições de Otimalidade para Problemas com Restrições Definição A.2. Seja g(x) : Rm →R uma função diferenciável. Um ponto x satisfazendo a restrição g(x) = 0 é chamado de ponto regular da restrição se os vetores gradientes ∇g1 (x), ∇g2 (x), ..., ∇gm (x) são linearmente independentes. Tópicos de Programação Não-Linear 93 Teorema A.3. Condição de Primeira Ordem (Restrições de Igualdade) Tome x sendo um ponto extremo local de f restrito a g(x) = 0. Assumindo que x seja um ponto regular destas restrições (g(x) = 0). Então, existe y ∈ Rm tal que ∇f (x) + y T ∇g(x) = 0 Neste contexto é conveniente introduzir o Lagrangeano associado com o problema restrito, definido como: L(x, y) = f (x) + y T g(x) As condições necessárias podem ser expressas como: ∇Lx (x, y) = 0 ∇Ly (x, y) = 0 Teorema A.4. Condições Necessárias de Karush-Kuhn-Tucker (KKT) Seja X um conjunto aberto não vazio em Rn , e tome f : Rn →R e gi : Rn →R para i = 1, ..., m. Considere o problema P de minimizar f (x) sujeito a x ∈ X e gi (x) ≤ 0 par i = 1, ..., m. Considere x sendo uma solução factı́vel e denote I = {i : gi (x) = 0}. Suponha que f e gi para i = 1, ..., m são diferenciáveis em x. Além disto, suponha que ∇gi (x) par i ∈ I são linearmente independentes. Se x é solução local do problema P , então existem escalares ui ∀i ∈ I tal que: ∇f (x) + P i∈I ui ∇gi (x) = 0 ui gi (x) = 0 para i = 1, ..., m ui ≥ 0 para i = 1, ..., m A prova completa deste teorema pode ser encontrada em [34] e [8]. As condições de KKT podem alternativamente ser escritas de forma vetorial, assumindo as condições anteriores, como: ∇f (x) + ∇g(x)T u = 0 uT g(x) = 0 u≥0 Tópicos de Programação Não-Linear 94 Onde g(x)T é a transposta da jacobiana de g em x e u é um vetor com os multiplicadores de Lagrange. Teorema A.5. Condições Suficientes de Segunda Ordem (Restrições de Igualdade) Suponha que exista um ponto x satisfazendo g(x) = 0, e x ∈ Rm tal que ∇f (x) + y T ∇g(x) = 0 Suponha também que a Hessiana do Lagrangeano H(x) = ∇2 f (x) + m X yi ∇2x gi (x) i=1 seja positiva definida em M = {y : ∇g(x)y = 0}, isto é, para y ∈ M e y 6= 0, então y T H(x)y > 0. Então x é um ponto de mı́nimo local de f sujeito a g(x) = 0. Teorema A.6. Seja X ∈ <n um conjunto aberto não vazio, e tome as funções f : <n → R e gi : <n → R, i = 1, ..., m. Considere o problema P de minimizar f (x) sujeito a x ∈ X e gi (x) ≤ 0 para i = 1, ..., m. Considere x sendo uma solução que atenda às condições de KKT A.4 e denotemos I = {i : gi (x) = 0}. Então se f é pseudoconvexa em x, e se gi , i ∈ I são convexas em x, logo x é uma solução ótima global para o problema P . Prova Tome x sendo uma solução factı́vel para o problema P . Para i ∈ I, gi (x) ≤ g( x), e como gi (x) ≤ 0 e gi (x) = 0 então, pela convexidade de gi em x, temos que ∇gi (x)T (x − x) ≤ gi (x) − gi (x) ≤ 0 (A.1) Multiplicando pelos respectivos multiplicadores de Lagrange yi referentes às condições P de KKT do ponto x, nós temos [ i∈I yi ∇gi (x)T ](x − x) ≤ 0. Mas desde que ∇f (x) + P T i∈I yi ∇gi (x) = 0, segue que ∇f (x)(x − x) ≥ 0. Então, pela pseudoconvexidade de f em x, nós temos que f (x) ≥ f (x), o que completa a prova. Tópicos de Programação Não-Linear 95 Retornando ao problema (3.1) verificamos que suas restrições diferem em relação ao teorema A.6 por serem restrições não negativas. Isto implica que equação A.1 não é verdadeira. Como gi (x) ≥ 0, temos ∇gi (x)T (x − x) ≥ gi (x) − gi (x) ≥ gi (x) ≥ 0 Desta forma, não há garantia quanto ao sinal de [ P i∈I (A.2) yi ∇gi (x)T ](x − x) e por conseguinte, não podemos afirmar que um ponto que atenda à primeira condição de KKT seja um ponto ótimo para o problema de job-shop. A.3 Regra de Armijo Existem várias regras para a seleção do passo α em algoritmos de busca em linha. A regra de Armijo é uma regras mais simples e eficaz. Ela será usada na redução do passo α com a finalidade de garantir a convergência a cada iteração do método de pontos interiores conforme apresentado na seção 3.2.1. A idéia básica desta regra é garantir que o tamanho do passo não seja tão grande nem tão pequeno. Consideremos um ponto z k e uma direção primal 4pk tais que ∇f (z k ) 6= 0, < ∇f (z k ), 4pk >< 0 e α ∈ (0, 1).. Existe χ = χ(α) > 0 tal que: f (z k + α4pk ) − f (z k ) ≤ ηα < ∇f (z k ), 4pk >, η ∈ (0, χ) Essa condição evita passos grandes. Porém, passos pequenos são inevitáveis, simplesmente porque passos grandes podem não permitir um decréscimo adequado, mas é importante tentá-los. Por isso assumimos o primeiro passo sendo η k = 1 e diminuı́mos o passo sem exageros até que a condição de Armijo seja satisfeita. A.4 Função de mérito Vejamos a definição de função de penalidade conforme Luenberg [34]: Tópicos de Programação Não-Linear 96 Definição A.3. Sendo f e g funções contı́nuas em <n , considere o problema: M in. f (x) s.a. (A.3) g(x) = 0 A função de penalidade (mérito) permite trocar o problema (A.3) por um problema irrestrito da forma Minimizar f (x) + cP (x) (A.4) onde c é uma constante positiva e P é uma função em <n satisfazendo: • P é contı́nua, • P (x) ≥ 0 ∀x ∈ <n , • P (x) = 0 se e somente se g(x) = 0. Idealmente, quando c → ∞ o ponto de solução do problema penalizado A.4 convergirá para a solução do problema restrito A.3. Anexo B Algoritmos Sugestivos B.1 Algoritmo para ajuste da matriz Normal Nβ Inı́cio Tome b = N, N χ=0 ξ = 4. max(|hii |), Enquanto χ > 0, C = 0n×n então: H = H + 4λξI; Para i = 1, 2, ..., n y = y + c(k, i)2 ; χ = h(i, i) − y;; se χ > 0, então cii = √ A x=0; Para j = 1 : n, para k = 1 : i − 1, x= x+(c(k,i)c(k,j)); se i < j então c(i, j) = (h(i, j) − x)/c(i, i) se i > j então c(i,j)=0 se χ ≤ 0 então faça ξ = Fim N = CT C xi+1 100 Algoritmos Sugestivos B.2 98 Algoritmo sugestivo de MPI Este algoritmo é uma adaptação do algoritmo proposto por Griva, et al [28] e foi usado para resolução do problema-exemplo 2 na seção 3.2.3. Passo 1: Inicialização: São dados: Uma aproximação primal-dual z 0 = (t0 , s0 , y 0 ) = (p0 , y 0 ) Uma constante ε > 0 usada como critério de parada, Parâmetros 0 < η < 1; 0 < δ < 1; 0 < q < 1; ς > 0 Tome: ¾ 1 , l := 0 z := z , τ := ν(z ), µ := δτ, τµ = νµ (z ), β := max 2µr0 , τµ 0 ½ 0 0 Passo 2: Se τ ≤ ε, Pare. Saı́da: z. Passo 3: Ajuste da matriz Normal conforme algoritmo apresentado seção anterior Descubra a direção primal 4z Defina l := l + 1 e κ := max{0, 95, 1 − τ }. p d Defina os tamanhos de passo αp := αmax eαd := αmax Defina pe := p + αp 4p, ye := y + αd 4y Passo 4: Reduza αp até que Lβ,µ (p + αp 4p, y) − Lβ,µ (p, y) ≤ ηαp < ∇Lβ,µ (p, y), 4p > Faça pe := p + αp 4p Passo 5: Se ||∇p Lβ,µ(pe,y) || > ς||ρ(e p)|| ou y + βρ(e p) 0 vá para Passo 3. Passo 6: ye := y + βρ(e p). Se νµ (e z ) > qτ , Tome p := pe, β := 2β, vá para o passo 2. Passo 7: Se ν(e z ) ≤ qτ , tome τ := ν(e z ), µ := δτ. ¾ ½ 1 Tome z := ze, τµ := νµ (e z ), β := max β, τµ Passo 8: Se τ ≤ ε, Pare. Saı́da: z. Passo 9: Vá para o Passo 3 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