_________________________________________________________________ PESQUISA OPERACIONAL Uma breve introdução. Prof. Cleber Almeida de Oliveira ___________________________________________________________________________ Apostila para auxiliar os estudos da disciplina de Pesquisa Operacional por meio da compilação de diversas fontes. Esta apostila encontra-se em fase de construção e está sujeita a erros e alterações. Para melhoria desta, gostaria de contar com a colaboração de todos e, agradeço desde já, qualquer sugestão e/ou correção. Programa do curso: Semana 1: Apresentação da disciplina Visão geral de resolução de problemas Semana 2: Tabulação de Dados e Matrizes – Teoria Solução de Sistemas Semana 3: Formulação em programação linear Semana 4: Formulação em programação linear Semana 5: Resolução de problemas de PL pelo Método Gráfico Semana 6: Prova (conteúdo das semanas anteriores) Semana 7: Introdução ao método simplex para resolução de PPL A matemática do método simplex Semana 8: Resolução de problemas de PL pelo Método Simplex Definição dos Trabalhos Individuais Semana 9: Resolução computacional de problemas de PL (Solver) Análise de sensibilidade Semana 10: Entrega dos Trabalhos (3h) Semana 11: Prova Ementa Tabulação de Dados e Matrizes. Sistema de equações lineares. Introdução ao Processo de Modelagem da Pesquisa Operacional. Programação Linear. Programação Linear Inteira. Objetivos Adquirir conhecimentos necessários a respeito das transformações lineares e de teoria das matrizes. Aprender a modelar e resolver os principais problemas determinísticos de pesquisa operacional, e a utilizar os pacotes computacionais EXCEL (com opção do SOLVER) ou LINDO/LINGO para solucionar estudos de casos práticos. Estabelecer vínculos práticos e acadêmicos, principalmente, com as seguintes áreas: matemática, estatística, informática, produção, logística, estratégia e gestão de projetos. Conteúdo Programático UNIDADE I – ARRANJO TABULAR E MATRIZES 1 - Tabulação de dados. Soma ou produto por escalar 2 - Produto de matrizes. Matriz transposta 3 - Matrizes quadradas 4 - Matriz inversa 5 - Posto de uma matriz 6 - Escalonamento. Formas canônicas UNIDADE II - SISTEMAS DE EQUAÇÕES LINEARES 1 - Soluções dos sistemas homogêneos e não homogêneos 2 - Estudo de variação de parâmetros UNIDADE III - INTRODUÇÃO AO PROCESSO DE MODELAGEM DA PESQUISA OPERACIONAL 3.1 - Colocação dos tipos de problemas a serem resolvidos 3.2 - Classificação dos tipos de modelos existentes 3.3 - Efeito da disponibilidade de dados na escolha do modelo 3.4 - Fases do processo de modelagem e solução de problemas em pesquisa operacional UNIDADE IV - PROGRAMAÇÃO LINEAR 4.1 - Colocação do tipo de problema a ser resolvido 4.2 - Modelagem e Solução pelo método gráfico 4.3 - Modelagem e Solução pelo método SIMPLEX 4.4 - Dualidade 4.5 - Análise de sensibilidade UNIDADE V - PROGRAMAÇÃO LINEAR INTEIRA 5.1 - Colocação do tipo de problema a ser resolvido Metodologia Aulas expositivas e práticas: leitura; dinâmicas; estudos de caso; exercícios, palestras integradas à disciplina; casos práticos e solução de problemas; integração com empresários e trabalhos de campo. Atividades discentes Elaboração e apresentação de trabalhos acadêmicos, individuais e/ou em grupo; resolução de problemas; leitura livros, jornais e artigos, análise de estudos de caso; exercícios,trabalhos de campo. Procedimentos de avaliação Provas individuais e trabalhos individuais ou em grupos, sendo GQ3 e GQE prova e com a matéria TODA. Trabalhos: estudos de caso; seminários; atividades propostas pelo professor dentro e fora de sala de aula e outros, podendo valer até 3 pontos no GQ1 e no GQ2. Bibliografia Básica 1. OLIVEIRA, C. A. – Apostila de Pesquisa Operacional, 2010. 2. LOESCH, C. e HEIN, N. - Pesquisa Operacional fundamentos e modelos - Ed. Saraiva, São Paulo, 2009 Complementar 1. Taha, H. A., Pesquisa Operacional, 8a edição. Pearson (Prentice-Hall), 2008. Propósito da Aula: Para os estudantes de Administração esta disciplina é aplicada para auxiliar na tomada de decisão. A Pesquisa Operacional é uma ferramenta que permite estruturar e otimizar processos da empresa por meio de construção de modelos matemáticos. Para isso, será imprescindível revisarmos arranjos tabulares ou tabulação de dados e as principais formas de representá-los: matrizes ou sistemas lineares. 1. Matrizes 1.1 Introdução O crescente uso dos computadores tem feito com que a teoria das matrizes seja cada vez mais aplicada em áreas como Administração, Economia, Engenharia, Matemática, Física, dentre outras. Vejamos um exemplo. A tabela a seguir apresenta o arranjo tabular das notas de três alunos em uma etapa: A B C Química 8 6 4 Inglês 7 6 8 Literatura 9 7 5 Espanhol 8 6 9 Se quisermos saber a nota do aluno B em Literatura, basta procurar o número que fica na segunda linha e na terceira coluna da tabela. Vamos agora considerar uma tabela de números dispostos em linhas e colunas, como no exemplo acima, mas colocados entre parênteses ou colchetes: Em tabelas assim dispostas, os números são os elementos. As linhas são enumeradas de cima para baixo e as colunas, da esquerda para direita: Tabelas com m linhas e n colunas (m e n números naturais diferentes de 0) são denominadas matrizes m x n. Na tabela anterior temos, portanto, uma matriz 3 x 3. Veja mais alguns exemplos: • • é uma matriz do tipo 2 x 3 é uma matriz do tipo 2 x 2 1.2 Notação geral Costuma-se representar as matrizes por letras maiúsculas e seus elementos por letras minúsculas, acompanhadas por dois índices que indicam, respectivamente, a linha e a coluna que o elemento ocupa. Assim, uma matriz A do tipo m x n é representada por: ou, abreviadamente, A = [aij]m x n, em que i e j representam, respectivamente, a linha e a coluna que o elemento ocupa. Por exemplo, na matriz anterior, a23 é o elemento da 2ª linha e da 3ª coluna. Na matriz , temos: Ou na matriz B = [-1 0 2 5 ], temos: a 11 = -1, a12 = 0, a13 = 2 e a14 = 5. 1.3 Denominações especiais Algumas matrizes, por suas características, recebem denominações especiais. • Matriz linha: matriz do tipo 1 x n, ou seja, com uma única linha. Por exemplo, a matriz A =[4 7 -3 1], do tipo 1 x 4. • Matriz coluna: matriz do tipo m x 1, ou seja, com uma única coluna. Por exemplo a matriz B, do tipo 3 x 1 : • Matriz quadrada: matriz do tipo n x n, ou seja, com o mesmo número de linhas e colunas; dizemos que a matriz é de ordem n. Por exemplo, a matriz C é do tipo 2 x 2, isto é, quadrada de ordem 2. Numa matriz quadrada definimos a diagonal principal e a diagonal secundária. A principal é formada pelos elementos aij tais que i = j. Na secundária, temos i + j = n + 1. Veja: Observe a matriz a seguir: a11 = -1 é elemento da diagonal principal, pois i = j = 1 a31= 5 é elemento da diagonal secundária, pois i + j = n + 1 ( 3 + 1 = 3 + 1) • Matriz nula: matriz em que todos os elementos são nulos; é representada por 0 m x n. Por exemplo: . • Matriz diagonal: matriz quadrada em que todos os elementos que não estão na diagonal principal são nulos. Por exemplo: • Matriz identidade: matriz quadrada em que todos os elementos da diagonal principal são iguais a 1 e os demais são nulos; é representada por In, sendo n a ordem da matriz. Por exemplo: Assim, para uma matriz identidade . • Matriz transposta: matriz At obtida a partir da matriz A trocando-se ordenadamente as linhas por colunas ou as colunas por linhas. Por exemplo: Desse modo, se a matriz A é do tipo m x n, At é do tipo n x m. Note que a 1ª linha de A corresponde à 1ª coluna de At e a 2ª linha de A corresponde à 2ª coluna de At. • Matriz simétrica: matriz quadrada de ordem n tal que A = At . Por exemplo, a matriz A é simétrica, pois a12 = a21 = 5, a13 = a31 = 6, a23 = a32 = 4, ou seja, temos sempre a ij = a ji. • Matriz oposta: matriz -A obtida a partir de A trocando-se o sinal de todos os elementos de A. Por exemplo: . 1.4 Igualdade de matrizes Duas matrizes, A e B, do mesmo tipo m x n, são iguais se, e somente se, todos os elementos que ocupam a mesma posição são iguais: . 1.5 Operações envolvendo matrizes a) Adição Dadas as matrizes , chamamos de soma dessas matrizes a matriz , tal que Cij = aij + bij , para todo : A+B=C Exemplos: • • Observação: A + B existe se, e somente se, A e B forem do mesmo tipo. Propriedades Sendo A, B e C matrizes do mesmo tipo ( m x n), temos as seguintes propriedades para a adição: a) comutativa: A + B = B + A b) associativa: ( A + B) + C = A + ( B + C) c) elemento neutro: A + 0 = 0 + A = A, sendo 0 a matriz nula m x n d) elemento oposto: A + ( - A) = (-A) + A = 0 b) Subtração Dadas as matrizes soma de A com a matriz oposta de B: , chamamos de diferença entre essas matrizes a A-B=A+(-B) Observe: 1.5.1 Multiplicação de um número real por uma matriz Dados um número real x e uma matriz A do tipo m x n, o produto de x por A é uma matriz B do tipo m x n obtida pela multiplicação de cada elemento de A por x, ou seja, bij = xaij: B = x.A Observe o seguinte exemplo: Propriedades Sendo A e B matrizes do mesmo tipo ( m x n) e x e y números reais quaisquer, valem as seguintes propriedades: a) associativa: x . (yA) = (xy) . A b) distributiva de um número real em relação à adição de matrizes: x . (A + B) = xA + xB c) distributiva de uma matriz em relação à adição de dois números reais: (x + y) . A = xA + yA d) elemento neutro : xA = A, para x=1, ou seja, A=A 1.5.2 Multiplicação de matrizes O produto de uma matriz por outra não é determinado por meio do produto dos seus respectivos elementos. Assim, o produto das matrizes A = ( aij) m x p e B = ( bij) p x n é a matriz C = (cij) m x n em que cada elemento cij é obtido por meio da soma dos produtos dos elementos correspondentes da i-ésima linha de A pelos elementos da j-ésima coluna B. Vamos multiplicar a matriz Cij: • 1ª linha e 1ª coluna para entender como se obtém cada • 1ª linha e 2ª coluna • 2ª linha e 1ª coluna • 2ª linha e 2ª coluna Assim, . Observe que: Portanto, comutativa. .A, ou seja, para a multiplicação de matrizes não vale a propriedade Vejamos outro exemplo com as matrizes : Da definição, temos que a matriz produto A . B só existe se o número de colunas de A for igual ao número de linhas de B: A matriz produto terá o número de linhas de A (m) e o número de colunas de B(n): • • • Se A3 x 2 e B 2 x 5 , então ( A . B ) 3 x 5 Se A 4 x 1 e B 2 x 3, então não existe o produto Se A 4 x 2 e B 2 x 1, então ( A . B ) 4 x 1 Propriedades Verificadas as condições de existência para a multiplicação de matrizes, valem as seguintes propriedades: a) associativa: ( A . B) . C = A . ( B . C ) b) distributiva em relação à adição: A . ( B + C ) = A . B + A . C ou ( A + B ) . C = A . C + B . C c) elemento neutro: A . In = In . A = A, sendo In a matriz identidade de ordem n Vimos que a propriedade comutativa, geralmente, não vale para a multiplicação de matrizes. Não vale também o anulamento do produto, ou seja: sendo 0 m x n uma matriz nula, A .B =0 m x n não implica, necessariamente, que A = 0 m x n ou B = 0 m x n. 1.6 Matriz inversa Dada uma matriz A, quadrada, de ordem n, se existir uma matriz A', de mesma ordem, tal que A . A' = A' . A = In , então A' é matriz inversa de A . representamos a matriz inversa por A-1 . Algoritmo no R (R é um software livre) > A=matrix (c(2, 3, 5, 7),2,2) [,1] [,2] >A [1,] -7 [,1] [,2] [2,] 5 3 -2 [1,] 2 5 > I=A%*%InvA [2,] 3 7 >I > InvA=solve(A) [,1] [,2] > InvA [1,] 1 0 [2,] 0 1 2. Sistemas de Equações Lineares Tanto as linhas quanto as colunas de uma matriz podem ser tratadas por vetores. Um vetor pode ser considerado uma matriz de uma única linha, ou uma única coluna. Quando um vetor é considerado uma matriz com uma única linha, é chamado vetor linha. Quando é uma matriz de uma única coluna, é chamado de vetor coluna. Um vetor coluna será representado da mesma forma que um vetor convencional, ou seja, uma letra minúscula em negrito (p, q, r). Quando for o caso de um vetor linha, ele será representado como um vetor transposto (pT, qT, rT). Suponha o seguinte sistema de equações lineares: 2 x1 - x2 = 7 - x1 + 4 x2 = 0 Este sistema pode ser representado na forma matricial por 2 −1 . x 1 = 7 −1 4 0 ou Ax = b x2 [ ][ ] [ ] onde [ A= 2 −1 −1 4 ] [] , X= [] x1 x2 7 e b= 0 O vetor coluna x é o vetor solução do sistema de equações e pode ser calculado por x = A b. -1 Exemplo de resolução de sistemas por matrizes empregando o software R. O dobro da idade de Ana mais a idade de Maria somam 40 anos. O triplo da idade de Ana mais o dobro da idade de Maria somam 70 anos. Qual a idade de Ana e de Maria? Modelo do problema: 2A+M=40 3A+2M=70 Podemos considerar a representação matricial deste sistema como: A * X = B ===> A solução consiste em obter X=invA * B sendo A a matriz: > A=matrix(c(2,3,1,2),2,2) >A [,1] [,2] [1,] 2 1 [2,] 3 2 Sendo B a matriz: > B=matrix(c(40,70),2,1) >B [,1] [1,] 40 [2,] 70 Calcula-se a inversa da matriz A com o seguinte comando: > invA=solve(A) > invA [,1] [,2] [1,] 2 -1 [2,] -3 2 Obtém-se as idades de Ana e Maria com a seguinte operação: > X=invA%*%B >X [,1] [1,] 10 [2,] 20 Portanto as idades de Ana e Maria são respectivamente 10 e 20 anos. Para a solução de um sistema de equações lineares, são propostos alguns métodos algébricos: 2.1 Método algébrico por adição Pelo menos uma das equações deve ser multiplicada por um escalar real, de modo que, após a soma das equações, apenas uma das variáveis seja efetivamente a incógnita do problema. Por exemplo, 4 x1 + 8 x2 = 160 6 x1 + 4 x2 = 120 Multiplicando a segunda equação por (-2), temos 4 x1 + 8 x2 = 160 -12 x1 - 8 x2 = -240 Somando as duas equações, chega-se a: -8 x1 = -80 Daí, calcula-se facilmente o valor de x1 e, substituindo este valor em qualquer uma das equações acima, calcula-se o valor de x2. x1 = 10 x2 = 15 2.2 Método algébrico por substituição Isola-se uma das variáveis em uma das equações, substituindo-se a relação obtida na outra equação. Por exemplo, 4 x1 + 8 x2 = 160 6 x1 + 4 x2 = 120 Manipulando a primeira equação, temos que 160−8x 2 x 1= =40−2x 2 4 Substituindo x1 na segunda equação, 6 (40 - 2 x2) + 4 x2 = 120 Resolvendo a equação algebricamente, e aplicando o valor de x2 encontrado na primeira equação 240 - 12 x2 + 4 x2 = 120 -8 x2 = -120 x2 = 15 x1 = 10 2.3 Método de Gauss-Jordan Consiste da derivação de um sistema específico de equações lineares que tenha a mesma solução que o sistema original. Este novo sistema deverá ter o formato de uma matriz identidade, o que pode ser obtido através de combinações lineares das equações originais. Assim, pretende-se que 4 x1 + 8 x2 = 160 1 x1 + 0 x2 = a 6 x1 + 4 x2 = 120 0 x1 + 1 x2 = b São permitidas as seguintes transformações lineares: Troca de linhas Multiplicação da linha por um escalar Soma de uma linha multiplicada por um escalar a uma outra linha Notação: L n↔ L m L n¬ k L n L n ¬ L n+ k L m troca das linhas n e m; multiplicação da linha n pelo escalar k; soma da linha m multiplicada pelo escalar k à linha n. Para resolver o exemplo acima, são seguidos os seguintes passos: 1. L1 ¬ L1 / 4 (divisão da linha 1 por 4) - transformação do coeficiente de x1 na equação 1 para 1. x1 + 2 x2 = 40 6 x1 + 4 x2 = 120 2. L2 ¬ L2 - 6 L1 (subtração da linha 2 pela linha 1 multiplicada por 6) - transformação do coeficiente de x1 na equação 2 para 0. x1 + 2 x2 = 40 0 x1 - 8 x2 = -120 3. L2 ¬ - L2 / 8 (divisão da linha 2 por (-8)) - transformação do coeficiente de x2 na equação 2 para 1. x1 + 2 x2 = 40 0 x1 + 1 x2 = 15 4. L1 ¬ L1 - 2 L2 (subtração da linha 1 pela linha 2 multiplicada por 2) - transformação do coeficiente de x2 na equação 1 para 0. x1 + 0 x2 = 10 0 x1 + 1 x2 = 15 Solução x1 = 10 x2 = 15 3. Exercícios: 1. Determine a matriz inversa das seguintes matrizes (algebricamente, Gauss-Jordan e R): [ ] A= 5 4 [ ] 6 5 B= 2 1 [ ] 5 3 C= 1 0 0 2 2. Determine a matriz inversa das seguintes matrizes usando o software R. [ 0 1 4 5 D= 8 9 −3 −4 2 3 6 7 −1 −2 −5 9 ] 3. Escreva na forma matricial e resolva os sistemas abaixo: { x+y− z=0 a ) x− y −2z=1 x+ 2y +z= 4 } { 3x−2y +z= 2 b ) −4y+3z=−2 36 3x+2y= 15 } { x+y+z+t= 2 x+ 2y−t= 4 c) 2x− y+z−t=−3 −4x +y−z+ 2t=4 }