Baixe o app para aproveitar ainda mais
Prévia do material em texto
26 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Unidade II Programação Linear A Programação Linear (PL) é, segundo Contador (1998), um dos mais nobres modelos da Pesquisa Operacional. Dos modelos da Pesquisa Operacional aos problemas organizacionais, a Programação Matemática é responsável por cerca de 60%. Desse percentual, grande parte deve‑se à PL. O objetivo desta unidade, portanto, é apresentar a PL, de maneira prática e utilitária, evitando conceituações matemáticas mais elaboradas. Contador (1998) estima que um curso de PL medianamente avançado cumpre um total de 45 horas efetivas de aula, ou seja, um semestre de três horas‑aulas semanais, o que não nos é disponibilizado, motivo pelo qual não nos aprofundaremos nas considerações matemáticas mais complexas. 5 modeLagem do ProbLema Para apresentar os conceitos da Programação Linear, utilizaremos um exercício adaptado, apresentado originalmente pelo professor Contador (1998), a partir dos trabalhos do professor Zaccarelli, cujo enunciado é o seguinte: Uma fábrica produz CPUs de dois tamanhos diferentes, grandes e pequenas, que apresentam lucros unitários de respectivamente $500 e $200. Ela deseja saber quantas unidades de cada um desses aparelhos deverá fazer para que o lucro obtido pela operação seja máximo. As capacidades de produção da fábrica são as seguintes: • 6 gabinetes grandes por hora; • 15 gabinetes pequenos por hora; • 24 placas‑mãe por hora; • 20 placas de vídeo por hora; Cada CPU grande é composta por: • 1 gabinete grande; • 3 placas‑mãe; • 2 placas de vídeo; 27 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Cada CPU pequena é composta por: • 1 gabinete pequeno; • 1 placa‑mãe; • 1 placa de vídeo; Podemos resumir esses dados na seguinte tabela: Tabela 1 Componentes Cpu grande Cpu pequena produção horária Gabinete grande 1 6 Gabinete pequeno 1 15 Placa‑mãe 3 1 24 Placa de vídeo 2 1 20 Modelar o problema significa definir: • as variáveis de entrada; • a Função Objetivo; • as restrições, para, a partir delas, montar um sistema de equações e inequações. No nosso caso temos: Variáveis de entrada = o número de CPUs a serem produzidas, ou seja: x1 = número de CPUs grandes a serem montadas. x2 = número de CPUs pequenas a serem produzidas. O objetivo é maximizar o lucro, portanto a Função Objetivo é: FO = lucro = 500x1 + 200x2 As restrições são relativas à capacidade produtiva de cada componente: gabinete grande: x1 ≤ 6 gabinete pequeno: x2 ≤ 15 placas‑mãe: 3x1 + x2 ≤ 24 placas de vídeo: 2x1 + x2 ≤ 20 28 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Evidentemente, o modelo de PL impõe outra restrição lógica, pois não se pode produzir uma quantidade negativa de CPUs; portanto: x1 ≥ 0 e x2 ≥ 0 Os valores de x1 e x2 que maximizam o lucro dessa operação serão obtidos pela resolução desse sistema de equações e inequações, ou seja, os valores que atendem simultaneamente a todas elas. Existem alguns métodos de solução: • Método Gráfico, aplicável a problemas com duas variáveis de entrada; • Método Simplex, método geral, aplicável a problemas com qualquer quantidade de variáveis de entrada; • Método Computacional, aplicável a um tipo específico de problema, mas com qualquer quantidade de variáveis de entrada. 6 TiPos de soLução 6.1 solução gráfica A solução gráfica consiste em plotar todas as restrições em um único diagrama ortogonal no qual o eixo horizontal representará as quantidades produzidas de CPUs grandes e o eixo vertical, as quantidades produzidas de CPUs pequenas: x2 = CPUs pequenas x1 = CPUs grandes 121086420 10 5 15 20 25 Figura 1 29 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Lembrete Sistema de Coordenadas no plano cartesiano ou espaço cartesiano é um esquema reticulado necessário para especificar pontos num determinado “espaço” com dimensões. Cartesiano é um adjetivo que se refere ao matemático francês e filósofo Descartes que, entre outras coisas, desenvolveu uma síntese da álgebra com a geometria euclidiana. O plano cartesiano contém dois eixos perpendiculares entre si. A localização de um ponto P no plano cartesiano é feita pelas coordenadas do plano (abscissa e ordenada – x e y). Nos quadrantes I e III, os sinas de x, y são os mesmos (+,+) e (‑,‑), respectivamente, já nos quadrantes II e IV, os sinas de x, y são opostos (‑,+) e (+,‑), respectivamente. Observe que utilizaremos o primeiro quadrante do sistema cartesiano, ou seja, valores de ambos os eixos positivos. Isso porque não teria sentido a produção de uma quantidade negativa de CPUs. Assim, teoricamente, qualquer ponto nesse diagrama ortogonal seria solução para o nosso problema. No entanto, veremos que, devido às restrições, pouco a pouco reduziremos os resultados possíveis. A primeira restrição é a dos gabinetes grandes: não é possível a produção de mais do que seis gabinetes por hora nem a produção de uma quantidade negativa de gabinetes, ou seja: 0 ≤ x1 ≤ 6 Graficamente, teríamos: 30 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 x2 = CPUs pequenas gabinete grande: x1 > 0 e x1 < 6 x1 = CPUs grandes 121086420 10 5 15 20 25 Figura 2 Perceba que só podem ser aceitos como soluções para esse problema os pontos coordenados à esquerda da reta desenhada. Restrição semelhante ocorre com os gabinetes pequenos: 0 ≤ x2 ≤ 15 x2 = CPUs pequenas gabinete grande: x1 > 0 e x1 < 6 gabinete pequeno: x2 > 0 e x2 < 15 x1 = CPUs grandes 121086420 10 5 15 20 25 Figura 3 Perceba que só podem ser aceitos como soluções para esse problema os pontos coordenados abaixo da reta desenhada. 31 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Até esse momento, as restrições já reduziram as soluções possíveis aos pontos coordenados circunscritos pelos eixos e pelas duas retas desenhadas. Em sequência, temos as restrições da quantidade de placas‑mãe produzidas, ou seja: 3x1 + x2 ≤ 24 Observe que, se x1 for igual a zero, x2 deverá ser menor ou igual a 24 para manter a inequação e, se x2 for igual a zero, x1 deverá ser menor ou igual a 8. Note as resoluções a seguir: Em 3x1 + x2 ≤ 24, se x1 = 0, tem‑se 3 × 0 + x2 ≤ 24 → x2 ≤ 24 Em 3 24 0 3 0 24 24 3 81 2 2 1 1 1x x se x tem se x x x+ ≤ = − + ≤ → ≤ → ≤, , Portanto, a inequação tem dois pontos característicos pelos quais podemos traçar a reta que a caracteriza: (0; 24) e (8; 0). Graficamente temos: x2 = CPUs pequenas gabinete grande: x1 > 0 e x1 < 6 gabinete pequeno: x2 > 0 e x2 < 15 3x1 + x2 < 24 x1 = CPUs grandes 121086420 10 5 15 20 25 Figura 4 Perceba que qualquer ponto coordenado à direita desta reta não é permitido, pois desobedeceria a inequação. Retiramos mais um “pedaço” do campo de soluções permitidas. A última restrição é a da placa de vídeo. Seguindo o mesmo raciocínio das placas‑mãe, determinamos a reta característica: 2x1 + x2 ≤ 20; se x1 = 0 → 2 × 0 + x2 ≤ 20→x2 → ≤ 20 2 20 0 2 0 20 20 2 101 2 2 1 2 2x x se x x x x+ ≤ = → + ≤ → ≤ → ≤; 32 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5-20 13 Os pontos característicos que definem a reta são (0;20) e (10;8), e graficamente: x2 = CPUs pequenas gabinete grande: x1 > 0 e x1 < 6 gabinete pequeno: x2 > 0 e x2 < 15 2x1 + x2 < 20 3x1 + x2 < 24 x1 = CPUs grandes 121086420 10 5 15 20 25 Figura 5 Mais uma parte das soluções possíveis foi retirada, restando um polígono de soluções possíveis. Veja a seguir: x2 = CPUs pequenas gabinete grande: x1 > 0 e x1 < 6 gabinete pequeno: x2 > 0 e x2 < 15 2x1 + x2 < 20 3x1 + x2 < 24 x1 = CPUs grandes 121086420 10 5 15 20 25 A B C D E Figura 6 Qualquer ponto desta área sombreada (em amarelo) é solução para o problema, continuando a existir, portanto, infinitas soluções, mas somente uma delas apresenta lucro máximo. É fácil entender qual é a solução ótima. Em cada lado do polígono, há um recurso que é utilizado ao máximo. Como num vértice há dois recursos utilizados ao máximo simultaneamente, a solução ótima estará num dos vértices do polígono. Este é o teorema fundamental da Programação Linear. 33 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Para ficar mais claro: no lado (aresta) definido pelos pontos BC, estamos produzindo o máximo possível de gabinetes. Já no ponto C, além de estarmos produzindo o máximo de gabinetes possíveis, estamos também produzindo o máximo possível de placas de vídeo. Antes tínhamos infinitas soluções possíveis, mas com esse teorema restaram apenas seis soluções que podem ser ótimas e, por tentativas, podemos definir qual é essa solução ótima. Veja a tabela a seguir: Tabela 2 VÉRTICE Cpu GRANDE Cpu pEQuENA LuCRO x1 x2 500x1+200x2 A 0 0 0 + 0 = 0 B 0 15 0 + 3.000 = 3.000 C 2,5 15 1.250 + 3.000 = 4.250 D 4 12 200 + 2.400 = 4.400 E 5 6 3.000 + 1.200 = 4.200 F 5 0 3.000 + 0 = 3.000 Portanto, o ponto de máximo lucro é o ponto D. Consequentemente, deve‑se montar quatro CPUs grandes por hora e doze pequenas por hora, o que gerará um lucro de $ 4.400,00 por hora. Para se atingir esse lucro máximo, serão produzidos: • 4 gabinetes grandes por hora; • 12 gabinetes pequenos por hora; • 24 placas‑mãe por hora; • 20 placas de vídeo por hora. observação Sobrarão, por hora, dois gabinetes grandes e três pequenos. Não haverá sobras de placas‑mãe e placas de vídeo. 6.2 solução pelo algoritmo simplex Perceba que esse processo gráfico tem muitas limitações, a começar pelo fato de que só pode ser usado para duas variáveis de entrada. Foi necessário o desenvolvimento de um método mais completo para realizar esses cálculos, que é conhecido como Simplex. 34 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 O Método Simplex, ao contrário do Método Gráfico, trabalha com equações, e não com inequações. Desse modo, as inequações devem ser transformadas em equações, e isso é feito com a adição de variáveis. Vamos, portanto, determinar as variáveis que podem aparecer em um problema desse tipo. Utilizaremos as definições estabelecidas por Contador (1998): • Variável de entrada é a aquela que deve ser otimizada e surge naturalmente do enunciado do problema. No caso do exercício das CPUs, que continuaremos usar como exemplo, as variáveis de entrada são o número de CPUs grandes (x1) e o número de CPUs pequenas (x2). • Termo independente é o valor numérico de uma restrição e, por convenção, é colocado à direita do sinal da inequação. No nosso exemplo, são as quantidade limitantes produzidas para cada componente. • Variável de folga ou residual, utilizada quando a desigualdade for do tipo ≤, é uma variável não negativa, somado ao lado esquerdo da desigualdade, e numericamente igual à diferença entre o termo independente e os valores à esquerda da desigualdade. Corresponde, numa determinada solução, à parcela não aproveitada de recursos. No nosso exemplo, são as eventuais sobras de componentes (gabinetes ou placas) • Variável de excesso, utilizada quando a desigualdade for do tipo ≥, é uma variável negativa, subtraída do lado esquerdo da desigualdade e numericamente igual à diferença entre o valor do termo independente e o valor das variáveis que estão à esquerda da desigualdade. No nosso exemplo, não existirão valores desse tipo, pois é um problema de maximização. • Variável artificial é uma variável adicionada à esquerda em todas as restrições que não contenham uma variável de folga, sendo utilizada, portanto, nas restrições que se apresentam originalmente com sinal ≥ ou =. A variável artificial é necessária porque a solução inicial do Simplex é obtida igualando a zero todas as variáveis de entrada e todas as de excesso, o que corresponde a fazer cada variável de folga e cada variável artificial igual ao valor do termo independente da equação da qual a variável em questão aparece. No nosso exemplo, não existem variáveis desse tipo, visto serem inequações do tipo ≤. Dessa forma, no nosso exemplo, as inequações seriam transformadas em equações, da seguinte forma: Inequações: gabinete grande: x1 ≤ 6 gabinete pequeno: x2 ≤ 15 placas‑mãe: 3x1 + x2 ≤ 24 placas de vídeo: 2x1 + x2 ≤ 20 35 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Equações: gabinete grande: 1x1 + 0x2 + 1x3 + 0x4 + 0x5 + 0x6 = 6 gabinete pequeno: 0x1 + 1x2 + 0x3 + 1x4 + 0x5 + 0x6 = 15 placas‑mãe: 3x1 + 1x2 + 0x3 + 0x4 + 1x5 + 0x6 = 24 placas de video: 2x1 + 1x2 + 0x3 + 0x4 + 0x5 + 1x6 = 20 Importante notar que na frente de cada variável colocamos seu coeficiente correspondente, mesmo quando não há necessidade, por ser zero ou um. Fizemos isso, para evidenciar os coeficientes que serão utilizados no algoritmo Simplex. Esse equacionamento tem seis valores desconhecido (as incógnitas x1; x2; x3; x4; x5; x6) e apenas quatro equações (as relacionadas anteriormente). Logo, o sistema de equações é indeterminado, tem infinitas soluções viáveis, e não apenas uma. Lembre‑se de que, em Matemática, só conseguimos resolver um sistema de equações quando o número delas for igual ao número de incógnitas. Nesse caso, portanto, temos infinitas soluções viáveis (as soluções mostradas na área hachurada do gráfico mostrado anteriormente). A solução ótima será pesquisada atribuindo valores arbitrários a um número de incógnitas igual ao número total delas subtraído pelo número de equações. No nosso exemplo, atribuiremos valores arbitrários a duas incógnitas (resultado da subtração de seis incógnitas por duas equações). Essa resolução exige conhecimentos matemáticos que de modo geral não são do domínio de alunos da graduação de Administração; por conseguinte, iremos apresentá‑la de forma descritiva, utilizando o problema das CPUs como ilustração e apresentando o método passo a passo. 1º passo: estabelecer a planilha do algoritmo Lembrete Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas; cada uma delas pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita. O conceito de algoritmo é frequentemente ilustrado pelo exemplo de uma receita culinária, embora muitos algoritmos sejam mais complexos. Eles podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica) até que a tarefa seja completada. Um algoritmo corretamente executado não resolverá um problema se estiver implementado incorretamente ou se não for apropriado ao problema. 36 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 É uma planilhade diversas linhas e colunas, na qual é reservada uma coluna para cada variável e mais quatro colunas de cálculos. Acompanhe a planilha para o nosso exemplo e o significado de cada coluna: Tabela 3 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b A coluna base contém as variáveis que estão sendo consideradas numa determinada tentativa. No nosso caso, teremos quatro variáveis em cada tentativa. Para as outras duas será atribuído o valor zero. As seis colunas seguintes são reservadas para cada uma das variáveis envolvidas. No nosso caso as duas variáveis de entrada (x1 e x2) e as quatro variáveis residuais (x3, x4, x5 e x6). A antepenúltima coluna é reservada para os termos independentes das equações (no nosso exercício as restrições de produção). A penúltima coluna é destinada a receber uma divisão entre as variáveis independentes, e a coluna de trabalho (veremos essa coluna mais adiante, durante a descrição do processo). A última coluna relacionará a variável que entrará e a que sairá na próxima tentativa. Existe um conjunto de linhas reservadas para cada tentativa: uma linha para cada equação e uma linha de controle (no caso, denominada lucro, nosso objetivo). Tabela 4 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 Gabinete pequeno x4 Placa‑mãe x5 Placa de vídeo x6 Controle/lucro 37 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal A planilha mostrada anteriormente está preparada para se atribuir o valor zero para as variáveis x1 e x2. É nossa primeira tentativa. Ao igualar as variáveis de entrada a zero, automaticamente igualamos as variáveis residuais ou de folga ao termo independente. Veja como exemplo a primeira equação: Em x1 + x3 = 6, se x1 = 0, então x3 = 6 O mesmo ocorre nas demais equações e variáveis. 2ª passo: início do preenchimento da planilha Colocamos em cada uma das linhas os coeficientes das equações citadas anteriormente. A tabela fica da seguinte forma: Tabela 5 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 Gabinete pequeno x4 0 1 0 1 0 0 15 Placa‑mãe x5 3 1 0 0 1 0 24 Placa de vídeo x6 2 1 0 0 0 1 20 Controle/lucro Na linha de controle, colocamos o lucro respectivo com sinal trocado, ou seja ‑500 para CPU grande, – 200 para CPU pequena e zero para as demais colunas: 38 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Tabela 6 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 Gabinete pequeno x4 0 1 0 1 0 0 15 Placa‑mãe x5 3 1 0 0 1 0 24 Placa de vídeo x6 2 1 0 0 0 1 20 Controle/lucro –500 –200 0 0 0 0 0 Como dissemos, nessa primeira tentativa atribuímos valor zero às variáveis x1 e x2. Na segunda tentativa, entraremos na tabela com uma delas e sair com uma das que fizeram parte na primeira tentativa (x3, x4, x5 e x6). Isso é feito da seguinte maneira: • localizar a coluna que apresentar o maior valor negativo na linha de controle, no nosso caso a coluna x1, que apresenta o valor ‑500. Essa coluna passa a ser denominada coluna de trabalho (ela irá variar de tentativa para tentativa). Costuma‑se assinalar a coluna por um retângulo. Essa variável é a que entrará na próxima tentativa. Colocamos essa informação na última coluna; • dividir o termo independente pelo valor correspondente na coluna de trabalho. Na linha de gabinete grande, por exemplo, dividiremos 6 por 1, obtendo o valor 6 que será colocado na penúltima coluna; • a variável que sairá na tentativa seguinte é aquela que corresponder à linha que apresentar menor valor positivo na coluna de termo independente; no exemplo, o valor 6 correspondente à variável x3; • O coeficiente que estiver no cruzamento da linha que sairá com a coluna de trabalho chama‑se pivô ou elemento pivotal e vai nos servir para os cálculos seguintes. Veja como deve ficar a planilha: 39 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Tabela 7 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 Gabinete pequeno x4 0 1 0 1 0 0 15 Placa‑mãe x5 3 1 0 0 1 0 24 Placa de vídeo x6 2 1 0 0 0 1 20 Controle/lucro –500 –200 0 0 0 0 0 Coluna de trabalho pivô 3º passo: determinação da tentativa seguinte Para a segunda tentativa, substituiremos a linha x3 na base, dando lugar à linha x1 que deve entrar. Todas as outras linhas, inclusive a de controle, devem permanecer com a base inalterada. Os valores da linha que entra são obtidos pela divisão dos valores da linha que sai pelo valor do pivô. Nesse caso, como o valor do pivô é 1, os valores permanecerão os mesmos. Tabela 8 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 6 entra Gabinete pequeno x4 0 1 0 1 0 0 15 ∞ x1 Placa‑mãe x5 3 1 0 0 1 0 24 8 sai Placa de vídeo x6 2 1 0 0 0 1 20 10 x3 40 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Controle/lucro –500 –200 0 0 0 0 0 CPU grande x1 1 0 1 0 0 0 6 Gabinete pequeno x4 Placa‑mãe x5 Placa de vídeo x6 Controle/lucro Os valores das demais linhas, inclusive do termo independente, é obtido pela chamada regra do retângulo. Antes de aprendermos a usar a regra do retângulo, notemos que nas colunas que também são linhas (no nosso exemplo, no momento, as colunas x1, x4, x5 e x6) aparecerão apenas números zero ou um. Quando uma coluna cruza com uma linha correspondente à mesma variável, o valor será um. Veja a seguir: Tabela 9 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 Gabinete pequeno x4 0 1 0 1 0 0 15 Placa‑mãex5 3 1 0 0 1 0 24 Placa de vídeo x6 2 1 0 0 0 1 20 Controle/lucro –500 –200 0 0 0 0 0 CPU grande x1 1 0 1 0 0 0 6 Gabinete pequeno x4 1 Placa‑mãe x5 1 Placa de vídeo x6 1 Controle/lucro 41 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal E, quando uma coluna cruza com uma linha correspondente a outra variável, o valor será zero. Veja novamente: Tabela 10 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 Gabinete pequeno x4 0 1 0 1 0 0 15 Placa‑mãe x5 3 1 0 0 1 0 24 Placa de vídeo x6 2 1 0 0 0 1 20 Controle/lucro –500 –200 0 0 0 0 0 CPU grande x1 1 0 1 0 0 0 6 Gabinete pequeno x4 0 1 0 0 Placa‑mãe x5 0 0 1 0 Placa de vídeo x6 0 0 0 1 Controle/lucro 0 0 0 0 Apenas os valores das colunas referentes às variáveis que estão assumindo valor zero (que estão “fora”) e da coluna do termo independente é que deverão ser calculados pela regra do retângulo. Para entendermos a regra do retângulo, utilizaremos o quadro a seguir, com as linhas e colunas numeradas à semelhança do Excel: 42 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Tabela 11 A B C D E F G H I J K 1 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir 2 Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo 3 x1 x2 x3 x4 x5 x6 b 4 5 Gabinete grande x3 1 0 1 0 0 0 6 6 Gabinete pequeno x4 0 1 0 1 0 0 15 7 Placa‑mãe x5 3 1 0 0 1 0 24 8 Placa de vídeo x6 2 1 0 0 0 1 20 9 Controle/lucro –500 –200 0 0 0 0 0 10 11 CPU grande x1 1 0 1 0 0 0 6 12 Gabinete pequeno x4 0 1 0 0 13 Placa‑mãe x5 0 0 1 0 14 Placa de vídeo x6 0 0 0 1 15 Controle/lucro 0 0 0 0 Queremos calcular o valor da célula D12. Para isso, usaremos o retângulo definido pelo pivô (célula C5) e pelo valor correspondente anterior (célula D6). O valor pedido será obtido pela formulação: Novo valor = Valor anterior – (produtos dos elementos da diagonal oposta) ÷ pivô No nosso exemplo, seria: D12 = D6 – (C6 × D5) ÷ C5, ou seja, 1 – (0 × 0) ÷ 1 = 1 Para fixar esse conceito, façamos agora o cálculo do termo independente correspondente à placa‑mãe. Veja a tabela a seguir: 43 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Tabela 12 A B C D E F G H I J K 1 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir 2 Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo 3 x1 x2 x3 x4 x5 x6 b 4 5 Gabinete grande x3 1 0 1 0 0 0 6 6 Gabinete pequeno x4 0 1 0 1 0 0 15 7 Placa‑mãe x5 3 1 0 0 1 0 24 8 Placa de vídeo x6 2 1 0 0 0 1 20 9 Controle/lucro –500 –200 0 0 0 0 0 10 11 CPU grande x1 1 0 1 0 0 0 6 12 Gabinete pequeno x4 0 1 1 0 0 13 Placa‑mãe x5 0 0 1 0 14 Placa de vídeo x6 0 0 0 1 15 Controle/lucro 0 0 0 0 Observe, em amarelo, o retângulo definido, valor correspondente ao desejado na base anterior e o pivô. O cálculo é feito utilizando‑se a formulação vista, ou seja: I13 = I7 – (C7 × I5) ÷ C5, ou seja, 24 – (3 × 6) ÷ 1 = 6 Os demais valores são calculados de modo idêntico, ficando a planilha do seguinte modo: 44 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Tabela 13 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 6 Entra Gabinete pequeno x4 0 1 0 1 0 0 15 ∞ x1 Placa‑mãe x5 3 1 0 0 1 0 24 8 Sai Placa de vídeo x6 2 1 0 0 0 1 20 10 x3 Controle/lucro –500 –200 0 0 0 0 0 CPU grande x1 1 0 1 0 0 0 6 Gabinete pequeno x4 0 1 0 1 0 0 15 Placa‑mãe x5 0 1 –3 0 1 0 6 Placa de vídeo x6 0 1 –2 0 0 1 8 Controle/lucro 0 –200 500 0 0 0 3.000 Repetimos então os cálculos feitos na tentativa anterior, passo a passo. O resultado será: Tabela 14 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 6 Entra Gabinete pequeno x4 0 1 0 1 0 0 15 ∞ x1 Placa‑mãe x5 3 1 0 0 1 0 24 8 Sai Placa de vídeo x6 2 1 0 0 0 1 20 10 x3 Controle/lucro –500 –200 0 0 0 0 0 45 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal CPU grande x1 1 0 1 0 0 0 6 ∞ Entra Gabinete pequeno x4 0 1 0 1 0 0 15 15 x2 Placa‑mãe x5 0 1 –3 0 1 0 6 6 Sai Placa de vídeo x6 0 1 –2 0 0 1 8 8 x3 Controle/lucro 0 –200 500 0 0 0 3.000 Podemos partir então para a terceira tentativa, substituindo primeiro a linha de x5 por x2: Tabela 15 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 6 Entra Gabinete pequeno x4 0 1 0 1 0 0 15 ∞ x1 Placa‑mãe x5 3 1 0 0 1 0 24 8 Sai Placa de vídeo x6 2 1 0 0 0 1 20 10 x3 Controle/lucro –500 –200 0 0 0 0 0 CPU grande x1 1 0 1 0 0 0 6 ∞ Entra Gabinete pequeno x4 0 1 0 1 0 0 15 15 x2 Placa‑mãe x5 0 1 –3 0 1 0 6 6 Sai Placa de vídeo x6 0 1 –2 0 0 1 8 8 x5 Controle/lucro 0 –200 500 0 0 0 3.000 CPU grande x1 Gabinete pequeno x4 CPU pequena x2 0 1 –3 0 1 0 6 Placa de vídeo x6 Controle/lucro 46 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Em seguida, preenchemos os valores das colunas que não estão zeradas na tentativa: Tabela 16 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 6 Entra Gabinete pequeno x4 0 1 0 1 0 0 15 ∞ x1 Placa‑mãe x5 3 1 0 0 1 0 24 8 Sai Placa de vídeo x6 2 1 0 0 0 1 20 10 x3 Controle/lucro –500 –200 0 0 0 0 0 CPU grande x1 1 0 1 0 0 0 6 ∞ Entra Gabinete pequeno x4 0 1 0 1 0 0 15 15 x2 Placa‑mãe x5 0 1 –3 0 1 0 6 6 Sai Placa de vídeo x6 0 1 –2 0 0 1 8 8 x5 Controle/lucro 0 –200 500 0 0 0 3.000 CPU grande x1 1 0 0 0 Gabinete pequeno x4 0 0 1 0 CPU pequena x2 0 1 –3 0 1 0 6 Placa de vídeo x6 0 0 0 1Controle/lucro 0 0 0 0 47 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Calculemos, então, pela regra do retângulo, os valores correspondentes às três colunas restantes: Tabela 17 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 6 Entra Gabinete pequeno x4 0 1 0 1 0 0 15 ∞ x1 Placa‑mãe x5 3 1 0 0 1 0 24 8 Sai Placa de vídeo x6 2 1 0 0 0 1 20 10 x3 Controle/lucro –500 –200 0 0 0 0 0 CPU grande x1 1 0 1 0 0 0 6 ∞ Entra Gabinete pequeno x4 0 1 0 1 0 0 15 15 x2 Placa‑mãe x5 0 1 –3 0 1 0 6 6 Sai Placa de vídeo x6 0 1 –2 0 0 1 8 8 x5 Controle/lucro 0 –200 500 0 0 0 3.000 CPU grande x1 1 0 1 0 0 0 6 Gabinete pequeno x4 0 0 3 1 –1 0 9 CPU pequena x2 0 1 –3 0 1 0 6 Placa de vídeo x6 0 0 1 0 –1 1 2 Controle/lucro 0 0 –100 0 200 0 4.200 48 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Por fim, calculemos quem entra e quem sai para a próxima tentativa: Tabela 18 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 6 Entra Gabinete pequeno x4 0 1 0 1 0 0 15 ∞ x1 Placa‑mãe x5 3 1 0 0 1 0 24 8 Sai Placa de vídeo x6 2 1 0 0 0 1 20 10 x3 Controle/lucro –500 –200 0 0 0 0 0 CPU grande x1 1 0 1 0 0 0 6 ∞ Entra Gabinete pequeno x4 0 1 0 1 0 0 15 15 x2 Placa‑mãe x5 0 1 –3 0 1 0 6 6 Sai Placa de vídeo x6 0 1 –2 0 0 1 8 8 x5 Controle/lucro 0 –200 500 0 0 0 3.000 CPU grande x1 1 0 1 0 0 0 6 6 Entra Gabinete pequeno x4 0 0 3 1 –1 0 9 3 x2 CPU pequena x2 0 1 –3 0 1 0 6 –2 Sai Placa de vídeo x6 0 0 1 0 –1 1 2 2 x6 Controle/lucro 0 0 –100 0 200 0 4.200 49 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Essas tentativas serão repetidas sucessivamente e tantas vezes quantas necessárias até que, na linha de controle, todos os números sejam positivos ou nulos. No nosso exemplo, só será necessária mais uma tentativa: Tabela 19 Base Variável de entrada Variável residual Termo indepen- dente Termo independente dividido pela coluna de trabalho Variável a incluir ou a excluir Cpu grande Cpu pequena Gabinete grande Gabinete pequeno placa-mãe placa de vídeo x1 x2 x3 x4 x5 x6 b Gabinete grande x3 1 0 1 0 0 0 6 6 Entra Gabinete pequeno x4 0 1 0 1 0 0 15 ∞ x1 Placa‑mãe x5 3 1 0 0 1 0 24 8 Sai Placa de vídeo x6 2 1 0 0 0 1 20 10 x3 Controle/lucro –500 –200 0 0 0 0 0 CPU grande x1 1 0 1 0 0 0 6 ∞ Entra Gabinete pequeno x4 0 1 0 1 0 0 15 15 x2 Placa‑mãe x5 0 1 –3 0 1 0 6 6 Sai Placa de vídeo x6 0 1 –2 0 0 1 8 8 x5 Controle/lucro 0 –200 500 0 0 0 3.000 CPU grande x1 1 0 1 0 0 0 6 6 Entra Gabinete pequeno x4 0 0 3 1 –1 0 9 3 x3 CPU pequena x2 0 1 –3 0 1 0 6 –2 Sai Placa de vídeo x6 0 0 1 0 –1 1 2 2 x6 Controle/lucro 0 0 –100 0 200 0 4.200 CPU grande x1 1 0 0 0 1 –1 4 Gabinete pequeno x4 0 0 0 1 2 –3 3 CPU pequena x2 0 1 0 0 –2 3 12 Gabinete grande x3 0 0 1 0 –1 1 2 Controle/lucro 0 0 0 0 100 100 4.400 50 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Observe a última coluna da última tentativa. Ela nos oferece a alternativa ótima para esse problema de programação linear: Tabela 20 Variável Item Qtd. Programa de produção: x1 CPUs grandes. 4 x2 CPUs pequenas. 12 Sobras (recursos residuais) x3 Gabinetes grandes 2 x4 Gabinetes pequenos 3 x5 Placas‑mãe 0 x6 Placas de vídeo 0 6.3 solução computacional – utilizando ferramenta solver do ms excel® O problema envolvendo a produção de CPUs é de maximização: queremos o máximo lucro. Vamos aproveitá‑lo mais uma vez como exemplo para apresentarmos a resolução pelo Método Computacional. Você deve ter percebido que o algoritmo Simplex, como seria de se esperar, é uma sequência repetitiva de cálculos, situação ideal para as chamadas planilhas eletrônicas, como o MS Excel®. Vamos, portanto tornar a resolver o exemplo das CPUs, utilizando o referido programa da Microsoft. Antes de iniciarmos o cálculo, observe que muitas vezes o pacote Solver (necessário para esses cálculos) não está disponível na planilha. Caso isso ocorra na sua máquina, siga os seguintes passos. Clique no botão do símbolo Office: Figura 7 Na tela que aparecerá escolha Opções do Excel: Figura 8 51 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Opte então pela opção Suplementos, disponível do lado esquerdo da tela que se abriu. Figura 9 Essa opção disponibilizará vários suplementos, entre eles o Solver. Ative‑o e terá a ferramenta disponível. Figura 10 observação Caso você não tenha conseguido a ativação do Solver por meio dos passos acima, será necessária a reinstalação do MS Excel®, utilizando‑se a opção Instalação completa. Estando com a ferramenta Solver disponível, podemos iniciar o processo de programação linear. Para tanto, o primeiro passo será a elaboração de uma planilha inicial com os dados fundamentais do problema. Acompanhe, na imagem a seguir, a montagem da planilha necessária para o nosso exemplo: 52 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Figura 11 Nas células B3 e C3, aparecerão as variáveis de entrada, ou seja, as respostas solicitadas (quantidade de CPUs grandes e pequenas a serem produzidas). Inicialmente, elas são preenchidas com zeros. Nas demais células, colocamos os dados iniciais do problema: • nas células B4 e C4, são colocados os lucros unitários, respectivamente da CPU grande e da CPU pequena; • nas células B7 a C8, são colocadas as composições dos produtos, ou seja, o número de componentes máximos de cada umas das CPUs; • nas células E8 a E10, são colocadas as restrições, ou seja, a quantidade máxima de unidades que podem ser produzidas por hora de cada componente. Nas células sombreadas, são colocadas as fórmulas de cálculo, conforme a seguir. Na célula D5, é colocada a Função Objetivo: FO = lucro = 500x1 + 200x2, que nessa planilha de Excel, ficará assim: B4*B3 + C4*C3 Nas células D7 a D10, serão colocadas as quantidades a serem utilizadas de cada componente, ou seja, a quantidade de CPUs a serem produzidas (célula B4 para CPU grande e C4 para CPU pequena), multiplicada pela quantidade de componentes utilizados em cada CPU. A seguir, mostram‑se as fórmulas e como elas devem ser estabelecidas no Excel: 53 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal gabinete grande (célula D7): 1 × x1 → no Excel → B7 * B3 gabinete pequeno (célula D8): 1 × x2 → no Excel → C8 * C3 placas‑mãe (célula D9): 3x1 + x2 → no Excel → B9* B3 + C9* C3 placas de vídeo (célula D10): 2x1 + x2 → no Excel → B10 * B03 + C10*C3 Montada a planilha,podemos resolver o problema por meio da utilização da ferramenta computacional. No MS Excel, essa ferramenta é o Solver, que deve ser acessado pelos seguintes comandos: Dados/ Solver. Figura 12 O quadro Parâmetros do Solver abrirá. Nele, deveremos preencher as seguintes informações: • No quadro correspondente a Definir célula de destino:, colocar o endereço da célula na qual está a Função Objetivo. No nosso caso, é a celular D4. Faça isso clicando sobre o quadro e em seguida clicando com o botão da esquerda do mouse pressionado sobre a célula escolhida. • Na linha de baixo do quadro, escolha a opção Máx, pois esse é um problema no qual queremos maximizar o lucro. Existem outros casos nos quais as opções serão Min ou Valor de. • Descendo no quadro mais uma linha, encontramos o quadro Células Variáveis. Nesse quadro, apresentaremos as células nas quais estão as variáveis de decisão. No nosso exemplo, as células B4 e C4. Faça isso clicando e arrastando o mouse sobre as células, com o botão da esquerda pressionado. 54 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 O quadro ficaria assim: Figura 13 O próximo passo é adicionar as restrições. Isso será feito clicando no botão Adicionar do quadro Parâmetros do Solver. Quando fizermos isso, aparecerá o quadro a seguir: Figura 14 Nesse quadro, devemos indicar três aspectos: • Referência de célula. É a célula que contém a fórmula da respectiva restrição. No nosso caso, são as células de D7 a D10. • Escolher o sinal adequado. O sinal padrão (default) que aparece é o <=. Clicando na seta ao lado podemos alterar o sinal, de acordo com o desejado. No nosso caso, desejamos o sinal <=, portanto não é necessária a alteração. • Na caixa Restrição, setar a célula na qual está a restrição. Observe como fica o quadro para a restrição dos gabinetes grandes: 55 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Figura 15 Clique então no botão Adicionar e coloque as demais restrições, uma a uma, de modo análogo. Após adicionar a última restrição, clique no botão OK. O quadro Parâmetros do Solve tornará a aparecer e terá o seguinte aspecto: Figura 16 Nesse ponto, temos todas as informações para o Excel efetuar os cálculos, evidentemente, como já vimos antes, por tentativas. Para se iniciar os cálculos, devemos estabelecer algumas opções de cálculo. Isso é feito clicando‑se sobre o botão Opções no quadro de Parâmetros, o que fará surgir o quadro Opções do Solver, mostrado a seguir. Nesse nosso exemplo, manteremos todas as definições‑padrão, acrescentando apenas as opções: • Presumir modelo linear: estamos diante de um caso de Programação Linear, portanto o modelo matemático deve ser linear. • Presumir não negativos: o Excel assume nessa opção a presunção de que os valores das células são no mínimo zero, ou seja, de não existem números negativos (o que é óbvio; não há nesse exemplo a possibilidade da produção de uma quantidade negativa de peças). • Usar escala automática: essa opção será sempre selecionada nos casos de Programação Linear. Com isso, dispensam‑se preocupações com a diferença entre as grandezas de entrada e os valores de saída do problema. 56 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Figura 17 Feitas as opções, clicamos no botão OK, retornando ao quadro Parâmetros do Solve. Devemos conferir as diversas informações introduzidas e em seguinda pressionar o botão Resolver. O Solver fará as tentativas de resolução e, após encerrado o processo de cálculo, apresentará o quadro Resultados do Solver. Veja que, no nosso caso, o Solver encontrou uma solução para o problema que atende a todas as condições e restrições fixadas. Figura 18 Observe que a planilha montada inicialmente agora apresenta valores nas células que estavam zeradas, apresentando o número de CPUs grandes a serem montadas (4), o número de CPUs pequenas a serem montadas (12) e o lucro total R$ 4.400,00. 57 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Figura 19 Já no quadro Resultados do Solver, no lado direito, existem três opções de relatórios. Selecionamos os três, clicando com o botão esquerdo do mouse sobre cada um deles. Além disso, mantivemos a opção Manter solução do Solver e aí clicamos em OK. A planilha fica, então, com o seguinte aspecto: Figura 20 Observe que, na barra inferior, apareceram os três relatórios mencionados. Vamos analisar cada um deles. Relatório de respostas O relatório (vide cópia a seguir) apresenta como valor final a solução ótima para o lucro auferido total, no valor de R$ 4.400,00, que será obtido com a montagem de 4 CPUs grandes e 12 CPUs pequenas, conforme mostram as células ajustáveis. No campo Valor original, aparecem os zeros inicialmente assumidos. As restrições apresentas sob o nome Transigência mostram as sobras que ocorrerão. O status Agrupar siginifica que não apresentaram sobras. Na coluna Fórmula, aparecem as restrições informadas. 58 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Figura 21 Relatório de limites Nesse relatório, a primeira informação é uma repetição do valor máximo obtido na Função Objetivo, que, nesse exemplo, é o lucro auferido total. Já o grupo de informações nomeado como Ajustável, simula o que ocorreria com a Função Objetivo caso as quantidades produzidas fossem produzidas na quantidade inferior possível. Perceba que se fossem produzidas zero CPUs grandes, o lucro seria de R$ 2.400,00 e caso fossem produzidas zero CPUs pequenas, o lucro seria de R$ 2.000,00; resultados estes óbvios. Esse problema é de maximização; logo, os limites superiores são os limites ótimos. Isso sempre ocorre em problemas de maximização. Nos problemas de minimização, a situação será oposta; os limites mínimos serão os ótimos. Figura 22 59 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Observe que esse relatório apresenta grande importância quando aumentamos o número de variáveis do problema. Imagine por exemplo que a empresa tivesse vinte produtos diferentes e quisesse descontinuar um deles. Qual seria a consequência para o lucro total? Isso poderia ser respondido por um relatório desse tipo. Relatório de sensibilidade Quando queremos observar os impactos de determinada alteração nos parâmetros de um problema, podemos usar o relatório de sensibilidade. Note que esse relatório tem dois campos. O primeiro campo, Células ajustáveis, nos informa quais as variações toleráveis nos objetivos individuais para que não se altere a solução. Assim podemos notar que se o lucro unitário de uma CPU grande variar entre R$ 400,00 e R$ 600,00 (cem reais para mais ou para menos) a solução ótima não se alterará. Da mesma forma, é tolerável uma variação no lucro unitário das CPUs pequenas entre R$ 167,67 e R$ 250,00. Figura 23 O segundo campo, Restrições, nos informa, no campo Sombra Preço, quanto perdemos na Função Objetivo por não ter uma unidade a mais de determinada variável restritiva. Assim, se tivéssemos uma placa‑mãe a mais, poderíamos aumentar o lucro em R$ 100,00. Observe, que a as colunas Permissível Acréscimo e Permissível Decréscimo têm as mesmas características em ambas as situações. 7 ProbLemas envoLvendo minimização da Função objeTivo 7.1 algoritmo simplex O problema de minimização, ao contráriodo problema de maximização, tem pelo menos umas de suas restrições do tipo ≥. Assim sendo, se no problema de maximização é necessário utilizarem‑se variáveis de folga, nos casos de minimização devemos introduzir variáveis de excesso nas restrições do tipo ≥. 60 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Como foi mencionado anteriormente, variável de excesso é uma variável não negativa, subtraída do lado esquerdo da desigualdade, e é numericamente igual à diferença entre o valor do termo independente e o valor das variáveis que estão à esquerda da desigualdade. Por outro lado, variável artificial é uma variável adicionada à esquerda em todas as restrições que não contenham uma variável de folga, sendo utilizada nas restrições que têm originalmente o sinal ≥. Em um problema de minimização, sempre aparecerão algumas variáveis artificiais. Como a solução básica inicial do Simplex é obtida igualando a zero todas as variáveis de entrada, a variável artificial torna‑se necessária para que a solução básica inicial não seja constituída pelas variáveis de excesso, que, como é subtraída na equação, acarretaria solução básica de valores negativos, o que contraria a lógica do Simplex. Esse procedimento corresponde a fazer, na solução básica inicial, as variáveis de entrada e de excesso iguais a zero e, consequentemente, as variáveis de folga e as artificiais iguais ao valor do termo independente da equação. Observe, no entanto, que, na solução ótima, as variáveis artificiais devem ser iguais a zero. Para que isso ocorra, atribui‑se, na Função Objetivo, um coeficiente M. Esse valor é altíssimo em relação a essas variáveis (por exemplo, um custo altíssimo), e dessa forma o Simplex irá, na solução ótima, imputar zero às variáveis artificiais. Contador (1998) relaciona as alterações necessárias no algoritmo Simplex de maximização para se resolver um problema de minimização. São elas: • introduzir as variáveis de excesso e artificial; • transformar a Função Objetivo de minimizar para maximizar e trocar o seu sinal, pois minimizar uma função equivale a maximizar sua simétrica; • mudar a maneira de calcular a linha de controle da primeira solução básica (isso será explicado no próximo exemplo); • a variável que entrará na base seguinte é aquela da coluna que apresentar maior valor positivo na linha de controle (perceba que é o procedimento oposto ao problema de maximização); • a variável que sairá da base é aquela que apresentar o menor valor não negativo na coluna termo independente dividido pela coluna de trabalho (outra alteração em relação ao problema de maximização). Explicaremos esse cálculo utilizando um exemplo apresentado pelo professor José Celso Contador (1998): Um fabricante de ração deseja produzir um determinado tipo de ração, conforme especificação do Ministério da Agricultura, e pelo mínimo custo. O Ministério especifica apenas quatro nutrientes A, B, C e D, exigindo que um quilo de ração contenha: • no mínimo, 120g do nutriente A; 61 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal • no mínimo, 360g do nutriente B; • no máximo, 360g do nutriente C; • exatamente 180g do nutriente D. O fabricante dispõe de três alimentos: milho, alfafa e silagem. E cada quilo desses alimentos contém os seguintes pesos em quilos dos nutrientes: Tabela 21 Nutriente Milho Alfafa Silagem A 0,1 0,2 0,1 B 0,4 0,4 0,3 C 0,2 0,2 0,1 D 0,1 0,2 0,1 Outros 0,2 0,4 Total 1,0 1,0 1,0 Sabendo‑se que o quilo do milho custa $ 0,50, o da alfafa $ 0,20 e o da silagem $ 0,10, determinar qual a mistura que proporciona mínimo custo da ração especificada. a) Modelagem do problema Representaremos as quantidades num quilo de ração de milho, alfafa e silagem, respectivamente, pelas letras x, y e z. A Função Objetivo, portanto, será: Custo da ração = 0,5x + 0,2y + 0,1z É evidente que nosso objetivo é minimizar o valor do custo da ração; portanto, devemos determinar os valores de x, y e z que resultem no menor custo possível (a solução ótima). Esse cálculo, no entanto, só tem sentido à luz das restrições, que são as seguintes: Para o nutriente A: 0,1x + 0,2y + 0,1z ≥ 0,12 kg Para o nutriente B: 0,4x + 0,4y + 0,3z ≥ 0,36 kg Para o nutriente C: 0,2x + 0,2y + 0,1z ≤ 0,36 kg Para o nutriente D: 0,1x + 0,2y + 0,1z = 0,18 kg 62 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Os nutrientes que não são especificados não constituem restrição física, mas precisam ser mostrados numa equação para manter a lógica do sistema matemático. São as restrições lógicas: Outros nutrientes: 0,2x + 0y + 0,4z ≥ 0 kg Por último, é necessário que os três alimentos juntos (milho, alfafa e silagem) perfaçam um quilo: x + y + z = 1kg Nesse ponto, precisamos fazer uma consideração. Trabalhar no Simplex com números fracionários não é recomendável. Por isso, vamos fazer um artifício matemático: multiplicar as inequações por 10 (o que não as altera) e posteriormente os termos independentes e a Função Objetivo por 10 também. Esse último artifício afeta o resultado final, ou seja, quando chegarmos ao resultado, deveremos dividi‑lo por 10, voltando à situação original. Portanto, as inequações ficarão com os seguintes formatos: Para o nutriente A: 1x + 2y + 1z ≥ 12 kg Para o nutriente B: 4x + 4y + 3z ≥ 36 kg Para o nutriente C: 2x + 2y + 1z ≤ 36 kg Para o nutriente D: 1x + 2y + 1z = 18 kg Outros nutrientes: 2x + 0y + 4z ≥ 0 kg x + y + z = 10kg Perceba que existem algumas redundâncias que permitem eliminar inequações, o que é muito bom, porque simplificará os cálculos. As inequações para o nutriente A e para o nutriente D são redundantes. Ficaremos com a mais restritiva, ou seja, a inequação do nutriente D (se a inequação for igual a 18 será automaticamente maior do que 12, daí a redundância). Outra redundância é a inequação para outros nutrientes. Também pode ser eliminada, pois se os valores de x, y e z têm que ser positivos, a inequação será automaticamente positiva. Ficamos, assim, com quatro inequações: Para o nutriente B: 4x + 4y + 3z ≥ 36 kg Para o nutriente C: 2x + 2y + 1z ≤ 36 kg 63 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Para o nutriente D: 1x + 2y + 1z = 18 kg x + y + z = 10kg b) Modelo formal Lembre‑se de que para transformar uma inequação do tipo ≤ em equações, é necessário introduzir uma variável de folga. Como já definido anteriormente, variável de folga ou residual é uma variável não negativa somada ao lado esquerdo da desigualdade e numericamente igual à diferença entre o termo independente e os valores à esquerda da desigualdade. Corresponde, numa determinada solução, à parcela não aproveitada dos recursos. Simbolizaremos essas variáveis como Ri. Já para transformar as inequações do tipo ≥ em equações, é necessário introduzir uma variável de excesso. Como já definido anteriormente, variável de excesso é uma variável não negativa, subtraída do lado esquerdo da desigualdade e numericamente igual à diferença entre o valor do termo independente e o valor das variáveis que estão à esquerda da desigualdade. Simbolizaremos essas variáveis como Ei. Além dessas duas variáveis, é necessário introduzir variáveis artificiais, que são variáveis adicionadas à esquerda em todas as restrições que não contenham uma variável de folga, sendo utilizadas, portanto, nas restrições que têm originalmente o sinal ≥ ou =. Como vimos, a variável artificial é necessária porque, na solução inicial doSimplex, são igualadas a zero todas as variáveis de entrada e de excesso, o que corresponde a fazer as variáveis de folga e as artificiais iguais ao termo independente, em cada uma das equações na qual a variável aparece. Simbolizaremos as variáveis artificiais como Ai. Feitas essas considerações, teremos as seguintes equações para serem trabalhadas no Simplex: Para o nutriente B: 4x + 4y+ 3 z –E1 + A1 = 36 kg Para o nutriente C: 2x + 2y + 1z + R2 = 36 kg Para o nutriente D: 1x + 2y + 1z + A3 = 18 kg x + y + z + A4 = 10kg Usando o problema, vamos tentar entender o significado da variável de excesso. A especificação da ração estabelece que ela deve conter no mínimo 360 gramas do nutriente B por quilo. Como o fabricante pode oferecer um valor maior, a variável de excesso representa a quantidade de nutriente B que exceder os 360 gramas. A Função Objetivo passa a ter a seguinte forma, considerando a multiplicação por 10, como orientado anteriormente: min→(5x + 2y + 1z + 0R2 + 0E1 + MA1 + MA2 + MA3) 64 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Da forma como foi apresentado, o Simplex é um algoritmo de maximização. Como o exemplo é de minimização, utilizaremos o mesmo procedimento, mas trocaremos o sinal da Função Objetivo, pois minimizar uma função corresponde a maximizar a função simétrica dela: max→(– 5x – 2y – 1z – 0R2 – →0E1 – MA1 – MA2 – MA3) Resumindo, o modelo formal desse problema de ração é: max→(– 5x – 2y – 1z – 0R2 – →0E1 – MA1 – MA2 – MA3) Submetido às restrições: 4x + 4y + 3z – 1E1 + 0R2 + 1A1 + 0A3 + 0A4 = 36 kg 2x + 2y + 1z + 0E1 + 1R2 + 0A1 + 0A3 + 0A4 = 36 kg 1x + 2y + 1z + 0E1 + 0R2 + 0A1 + 1A3 + 0A4 = 18 kg 1x + 1y + 1z + 0E1 + 0R2 + 0A1 + 0A3 + 1A4 = 10 kg Vemos, então, que todas as variáveis são não negativas (positivas ou zero). c) Montagem do Simplex Estabelecidas as equações, podemos montar o Simplex passo a passo: O simplex terá as seguintes colunas: Tabela 22 Base Função objetivo Variável de entrada Variável Residual/ Excesso Variável artificial Termo independente Controle Termo indepen- dente dividido pela coluna de trabalho Variável a incluir ou a excluir –5 –2 –1 0 0 –M –M –M Coeficiente da função objetivo Valor da função objetivox y z E1 R2 A1 A2 A4 b 1º passo: variáveis da primeira base A primeira base (primeira tentativa) é constituída pelas variáveis residuais e pelas artificiais, e seu valor é igual ao respectivo termo independente. Os coeficientes das equações são colocados nos locais adequados, conforme já fizemos anteriormente. 65 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Tabela 23 Base Função objetivo Variável de entrada Variável Residual/ Excesso Variável artificial Termo independente Controle Termo indepen- dente dividido pela coluna de trabalho Variável a incluir ou a excluir –5 –2 –1 0 0 –M –M –M Coeficiente da função objetivo Valor da função objetivox y z E1 R2 A1 A2 A4 b A1 4 4 3 –1 0 1 0 0 36 –M R2 2 2 1 0 1 0 0 0 36 –O A3 1 2 1 0 0 0 1 0 18 –M A4 1 1 1 0 0 0 0 1 10 –M Controle 2º passo: linha de controle A linha de controle da primeira base é obtida pela soma dos produtos dos coeficientes da respectiva coluna pelos valores da coluna Função Objetivo, menos o valor do coeficiente da variável da coluna na Função Objetivo (isso é um produto matricial, cujos detalhes matemáticos não fazem parte do nosso programa). Veja a seguir: na coluna da variável x: [4(– M) + 2(0) + 1(– M) + 1(– M)] – (– 5) = (5 – 6M) na coluna da variável y: [4(– M) + 2(0) + 2(– M) + 1(– M)] – (– 2) = (2 – 7M) na coluna da variável z: [3(– M) + 1(0) + 1(– M) + 1(– M)] – (– 1) = (1 – 5M) na coluna da variável E1: [ – 1(– M) + 0(0) + 0(– M) + 0(– M)] – (0) = (M) Nas demais colunas, esses cálculos resultarão zero. Veja a seguir: Tabela 24 Base Função objetivo Variável de entrada Variável Residual/ Excesso Variável artificial Termo indepen- dente Controle Termo indepen- dente dividido pela coluna de trabalho Variável a incluir ou a excluir –5 –2 –1 0 0 –M –M –M Coeficiente da função objetivo Valor da função objetivox y z E1 R2 A1 A2 A4 b A1 4 4 3 –1 0 1 0 0 36 –M R2 2 2 1 0 1 0 0 0 36 –O A3 1 2 1 0 0 0 1 0 18 –M A4 1 1 1 0 0 0 0 1 10 –M Controle 5‑6M 2‑7M 1‑5M M 0 0 0 0 66 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 A coluna Valor da FO (Função Objetivo) é obtida pela multiplicação da coluna Termo Independente pela coluna Coeficiente da Função Objetivo. O valor na linha de controle é a soma desses produtos. 36(–M) + 36(0) + 18(–M) + 10(–M)= – 64M Em outras palavras, esse valor é aquele da primeira solução básica, obtida diretamente na Função Objetivo. Como, numa solução básica, as variáveis que não estão na base são iguais a zero e as outras são iguais aos respectivos termos independentes, a Função Objetivo acaba reduzida à expressão anterior. Veja a seguir se fizéssemos pela Função Objetivo, como o resultado seria idêntico: – 5(0) – 2(0) – 1(0) – 0RA – 0E1 – 36M – 18M – 10M= –64M Nesse momento do cálculo, a planilha do Simplex estará assim: Tabela 25 Base Função objetivo Variável de entrada Variável Residual/ Excesso Variável artificial Termo indepen- dente Controle Termo indepen- dente dividido pela coluna de trabalho Variável a incluir ou a excluir –5 –2 –1 0 0 –M –M –M Coeficiente da função objetivo Valor da função objetivox y z E1 R2 A1 A2 A4 b A1 4 4 3 –1 0 1 0 0 36 –M –36M Entra R2 2 2 1 0 1 0 0 0 36 –O –0 A3 1 2 1 0 0 0 1 0 18 –M –18M Sai A4 1 1 1 0 0 0 0 1 10 –M –10M Controle 5‑6M 2‑7M 1‑5M M 0 0 0 0 –64M –64M 3º passo: variável que entrará na base seguinte É aquela da coluna que apresentar o maior valor negativo na linha de controle. No nosso exemplo, será a variável Y. 67 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Tabela 26 Base Função objetivo Variável de entrada Variável Residual/ Excesso Variável artificial Termo indepen- dente Controle Termo indepen- dente dividido pela coluna de trabalho Variável a incluir ou a excluir –5 –2 –1 0 0 –M –M –M Coeficiente da função objetivo Valor da função objetivox y z E1 R2 A1 A2 A4 b A1 4 4 3 –1 0 1 0 0 36 –M –36M Entra R2 2 2 1 0 1 0 0 0 36 –O –0 y A3 1 2 1 0 0 0 1 0 18 –M –18M Sai A4 1 1 1 0 0 0 0 1 10 –M –10M Controle 5‑6M 2‑7M 1‑5M M 0 0 0 0 –64M –64M 4º passo: variável que vai sair da base Será a que apresentar o menor valor não negativo na coluna termo independente dividido pela coluna de trabalho. Vale lembrar que é necessário calcular a coluna de trabalho, que é aquela coluna de divisão correspondente à variável que entrará. Tabela 27 Base Função objetivo Variável de entrada Variável Residual/ Excesso Variável artificial Termo indepen- dente Controle Termo indepen- dente dividido pela coluna de trabalho Variável a incluir ou a excluir –5 –2 –1 0 0 –M –M –M Coeficiente da função objetivo Valor da função objetivox y z E1 R2 A1 A2 A4 b A1 4 4 3 –1 0 1 0 0 36 –M –36M Entra R2 2 2 1 0 1 0 0 0 36 –O –0 y A3 1 2 1 0 0 0 1 0 18 –M –18M Sai A4 1 1 1 0 0 0 0 1 10 –M –10M Controle 5‑6M 2‑7M 1‑5M M 0 0 0 0–64M –64M Está encerrada a primeira base. Como fizemos no exercício das CPUs, repetiremos as tentativas (bases) até que só restem números não negativos na linha de controle. Veja como ficaram os cálculos nesse exemplo: 68 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Tabela 28 Base Função objetivo Variável de entrada Variável Residual/ Excesso Variável artificial Termo inde- pen- dente Controle Termo indepen- dente dividido pela coluna de trabalho Variável a incluir ou a excluir –5 –2 –1 0 0 –M –M –M Coeficiente da função objetivo Valor da função objetivox y z E1 R2 A1 A2 A4 b A1 4 4 3 –1 0 1 0 0 36 –M –36M Entra R2 2 2 1 0 1 0 0 0 36 –0 –0 y A3 1 2 1 0 0 0 1 0 18 –M –18M Sai A4 1 1 1 0 0 0 0 1 10 –M –10M Controle 5‑6M 2‑7M 1‑5M M 0 0 0 0 –64M –64M Y 1 1 3/4 –1/4 0 1/4 0 0 9 –2 –18 –36 Entra R2 0 0 –1/2 –1/2 1 –1/2 0 0 18 –0 0 36 E1 A3 –1 0 –1/2 1/2 0 –1/2 1 0 0 –M 0 0 Sai A4 0 0 1/4 1/4 0 –1/4 0 1 1 –M –M 4 A3 Controle 3+M 0 (M‑2)/4 (2‑3M)/4 0 (7M–2)/4 0 0 –18–M Y 1/2 1 1/2 0 0 0 1/2 0 9 –2 –18 18 Entra R2 1 0 0 0 1 0 –1 0 18 0 0 ∞ Z E1 –2 0 –1 1 0 –1 2 0 0 0 0 –0 Sai A4 0 0 1/2 0 0 0 –1/2 1 1 –M –M 2 A3 Controle (8+M)+2 0 –M/2 0 0 M –1+1,5M 0 –18–M –18–M Y 0 1 0 0 0 0 1 –1 8 –2 –16 R2 1 0 0 0 1 0 –1 0 18 0 0 E1 –1 0 0 1 0 –1 1 2 2 0 0 A4 1 0 1 0 0 0 –1 2 2 –1 –2 Controle 4 0 0 0 0 M M–1 M –18 –18 Dessa forma, a solução do problema é a seguinte: FO = 18 (custo mínimo = 5 x 0 + 2 x 8 +1 x 2 =18), considerando que x = 0; y = 8 e z = 2. A variável de folga E1 será igual a 2 (sobra 2); a variável de excesso, igual a 18, e as artificiais, logicamente iguais a zero. Observe, no entanto, que a solução anterior é matemática. Para trabalharmos com números inteiros, multiplicamos os termos independentes e a Função Objetivo por 10; agora, para voltarmos ao original, devemos dividir por 10: 69 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal A ração será, por quilo, composta de: x = 0 kg de milho; y = 0,8 kg de alfafa; z = 0,2 kg de silagem. E o custo da ração será de: (0,8 kg de alfafa a $ 0,20 por kg) = (0,2 kg de silagem a $0,10 por kg) = 1,8 por kg de ração. 7.2 solução computacional No exemplo das CPUs, vimos a resolução computacional de um problema de maximização da Função Objetivo. Muitos casos práticos envolvem um problema de minimização, ou seja, uma situação em que queremos que a Função Objetivo assuma o menor valor possível. Nesses casos, pelo menos uma das restrições é do tipo ≥. Como anteriormente, vamos usar um exemplo para explicar os cálculos envolvidos, mas desta vez vamos nos concentrar na solução computacional, hoje em dia muito mais adequada e amplamente utilizada. Vamos imaginar a seguinte situação: Um investidor tem R$ 850.000,00 para aplicar no mercado financeiro, podendo escolher entre duas opções: um fundo de ações e um fundo de renda fixa. Cada quota do fundo de ações custa R$ 160,00 e proporciona uma taxa de retorno de 9%. Por outro ladro, cada quota do fundo de renda fixa custa R$ 215,00 e proporciona uma taxa de retorno de 5%. O objetivo do cliente é minimizar o risco, mas pretende obter o retorno de pelo menos R$ 48.000,00. Para aquisição de uma quota, o fundo de ações apresenta um índice de risco igual a 5, enquanto uma quota do fundo de renda fixa apresenta um índice de risco igual a 2. O último desejo do cliente é que pelo menos 650 quotas do fundo de renda fixa sejam adquiridas. O que se deseja é determinar quantas quotas de cada um dos investimentos disponíveis devem ser adquiridas, para que se atinja o objetivo de minimizar o índice de risco total da carteira desse investidor. Perceba que o processo de cálculo é semelhante aos casos de maximização. A grande diferença está no equacionamento matemático de uma e da outra situação. Quando utilizamos os recursos computacionais, essa diferença fica muito mais minimizada. 70 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 As variáveis de entrada ou variáveis de decisão são: x1 = quantidade de quotas do fundo de ações; x2 = quantidade de quotas do fundo de renda fixa. Desse modo, a Função Objetivo fica sendo: Risco total da carteira = 5x1 + 2x2 Essa Função Objetivo deve ser evidentemente minimizada. As restrições são as seguintes: Os recursos disponíveis para aplicação são de R$ 850.000,00. Considerando o valor das quotas de, respectivamente, R$ 160,00 e R$ 215,00, a primeira restrição do problema será: 160x1 + 215x2 = 850.000 O cliente espera um retorno de no mínimo R$ 48.000,00. Como as taxas de retorno são 9% e 5%, sobre cotas de valor, respectivamente, de R$ 160,00 e R$ 215,00, a segunda restrição do problema será: (0,09×160)x1 + (0,05×215)x2 ≥ 25.000 O cliente deseja que sejam adquiridas no mínimo 650 quotas de renda fixa. Isso define mais uma restrição: x2 ≥ 650 Estabelecido o equacionamento matemático, podemos montar no Excel a planilha com os dados necessários para utilizar o Solver. A planilha ficaria com o seguinte aspecto: Figura 24 71 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal As fórmulas são as seguintes: Tabela 29 Células Fórmulas B6 =B4*B5 C6 =C4*C5 D6 =SOMA(B6:C6) B10 =B5*B9 C10 =C5*C9 D10 =SOMA(B10:C10) B12 =B5*B9*B11 C12 =C5*C9*C11 D12 =SOMA(B12:C12) C13 =C5 Observe que as células B5 a C5, que receberão as quantidades a serem adquiridas de quotas, são inicialmente preenchidas com zeros. Montada a planilha com as informações de entrada e as restrições, podemos acessar o Solver, informando os dados necessários. Observe que, nesse caso, no parâmetro Igual a: optamos pela opção Mín, mostrada no quadro Parâmetros do Solver. Não nos esqueçamos também de, em Opções, selecionarmos: Presumir modelo linear, Presumir não negativos e Usar escala automática. As figuras a seguir mostram as seleções feitas: Figura 25 72 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Figura 26 Clicando OK na tela de Opções do Solver e em seguida Resolver na tela de Parâmetros do Solver, obteremos a solução proposta pela ferramenta: Figura 27 Ao aceitar a solução do Solver clicando OK, teremos os três relatórios já conhecidos: Microsoft Excel 12.0 – Relatório de Resposta: 73 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Figura 28 Microsoft Excel 12.0 – Relatório de Sensibilidade: Figura 29 Microsoft Excel 12.0 – Relatório de Limites: Figura 30 74 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 8 aPLicações TíPicas Segundo Contador (1998), as aplicações da PL são diversas em todos os campos da Administração. Ele mostra, na lista a seguir, as principais aplicações descrevendo‑as em termos gerais: • planejamento da produção: determinar o plano de produção de mínimo custo ou de máximo lucro, partindo da previsão de vendas, da capacidade produtiva e de fatores reais de custos ou de lucro. É o caso do problema das CPUs. Importante mencionar que a PL só é aplicada nos casos em que a capacidade produtiva é menor que a demanda: se uma fábrica pode aumentar sua capacidade produtiva rapidamente, obviamente atenderá toda a demanda,e daí não precisará lançar mão da PL. saiba mais Veja o valor do planejamento em logística, transporte e deslocamentos assistindo ao filme O Resgate do Soldado Ryan, que apresenta aspectos práticos interessantes desse processo. • Dosagem; mistura e dieta: aplicada à preparação de produtos a partir da mistura de ingredientes, objetivando minimizar o custo para uma demanda específica do produto final. É célebre o estudo feito nos Estados Unidos sobre mistura de diversos componentes para obter, ao mínimo custo, gasolina com determinada especificação. É o caso também da fabricação de ligas metálicas a partir de minérios, levando em consideração, além dos custos, certas restrições relativas ao percentual de impurezas. Problema de dieta de mínimo custo para seres humanos e animais é outra aplicação: conhecendo as quantidades necessárias de nutriente, a composição nutritiva de cada alimento e os custos respectivos, determina‑se a dieta de menor custo. • Alocação de recursos: como organizar a distribuição de recursos (materiais, mão de obra, equipamentos, capitais) para maximizar a produção ou o lucro. Aplicação característica é a da produção agrícola: em quais tipos de cultura (milho, soja, cana‑de‑açúcar) aplicar os recursos limitados de terra, máquinas agrícolas, homens, dinheiro para obter máximo lucro, podendo levar em consideração limitações na capacidade de comercializar safras e incluir rotações de cultura durante o ano. • Armazenamento: para produto de demanda sazonal (cerveja, por exemplo); quanto produzir para estocar em armazém de capacidade limitada durante o período de baixa demanda e quanto produzir em horas extras no período de alta demanda, para minimizar o custo ou maximizar o lucro. • Análise posicional: é possível determinar a melhor dentre as várias localizações possíveis para depósitos, fábricas ou distribuidores, com base nos vários fatores relativos a cada localização. 75 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal • Avaliação de cargos e salários: pode‑se utilizar a programação linear em substituição à análise de regressão múltipla para determinar os pesos relativos dos fatores considerados na avaliação de salários e de cargos. Análise semelhante pode ser aplicada a qualquer situação experimental para obter melhor avaliação em suas linhas gerais. • Transporte: foi o problema que primeiro motivou o desenvolvimento da PL. Conhecida a demanda de certo produto distribuído em vários locais e conhecidas a disponibilidade de vários depósitos, a capacidade e os custos dos diversos modais de transporte (trem, navio, caminhão, avião), é possível determinar qual depósito deverá atender cada um dos destinos e qual a quantidade a ser transportada, de modo a minimizar custos. Aplicam‑se também nos casos de transbordos em armazéns intermediários, abastecidos por meios de transporte de longa distância e que abastecem lojas ou armazéns urbanos por meio de caminhões leves. Esse problema, apesar de poder ser resolvido pelo Simplex, possui métodos especiais de solução conhecidos por métodos de transporte. • Designação e atribuição de tarefas: nas situações em que um grande número de tarefas precisa ser executado por um grupo de máquinas ou pessoas diferentes, é possível determinar qual a melhor atribuição de tarefas entre as máquinas e/ou pessoas, de modo a minimizar o tempo total para produzir uma mesma quantidade. resumo A Programação Linear (PL) é um dos mais nobres modelos da Pesquisa Operacional. Dos modelos da Pesquisa Operacional aos problemas organizacionais, a Programação Matemática é responsável por cerca de 60%. Desse percentual, grande parte deve‑se à PL. O conceito de programação linear é: programação que utiliza uma técnica de otimização (maximização e minimização) e pode ser usada em diversos setores. Um dos exemplos mais comuns é o uso dessa técnica para a maximização do lucro, levando em conta as restrições do ambiente interno (capacidade) externa (mercado) Geralmente, utiliza‑se a PL quando existe a necessidade de efetuar uma distribuição eficiente de recursos limitados, ou seja, maximizando lucros e/ou minimizando os custos. O objetivo na PL é definido como Função Objetivo. Esses cálculos podem ser feitos pelo método do Simplex, de forma manual, ou em planilhas eletrônicas, como o Excel, ou ainda pelo método gráfico, até duas variáveis. Um estudo de PO consiste em construir um modelo da situação física. Um modelo de PO é definido como uma representação idealizada de um sistema organizacional. Esse sistema pode já ser existente ou ainda ser uma ideia à espera de execução. No primeiro caso, o objetivo do modelo 76 Unidade II Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 é analisar as operações do sistema para verificar sua performance. No segundo, o objetivo é identificar a melhor estrutura do futuro sistema. A complexidade de um sistema real resulta do grande número de variáveis que comandam as operações do sistema, embora um sistema real possa envolver um número substancial de variáveis, geralmente uma pequena fração dessas variáveis domina as operações do sistema. Então, a simplificação do sistema real, em termos de um modelo condensado, identificando apenas as variáveis dominantes e as relações entre elas, é o empregado. exercícios Questão 1. Dentro da Pesquisa Operacional, um dos mais nobres modelos é o da Programação Linear. José Celso Contador afirma que a Programação Matemática, a linear inclusa, é responsável por cerca de 60% dos problemas de Pesquisa Operacional. Modelar um problema, na Programação Linear, consiste em definir as variáveis de entrada, definir a Função Objetivo e montar o sistema de equações e inequações referentes às restrições. Entre os métodos de solução na Programação Linear, temos o método gráfico aplicável a problemas com duas variáveis de entrada. Com relação a esse modelo, é incorreto afirmar que: A) Em princípio, qualquer ponto do plano ortogonal é solução do problema. B) Cada restrição divide o espaço ortogonal em dois campos: um com as soluções mais recomendáveis e outro com as que não são tão recomendáveis. C) A sucessiva colocação de restrições produz um polígono de soluções possíveis. D) A solução ótima está num dos vértices do polígono, porque são os pontos em que dois recursos são utilizados ao máximo. E) A maneira de definir o valor ótimo entre os vários pontos possíveis é por meio de tentativas sucessivas. Resposta correta: alternativa B. Análise da alternativa Justificativa: a questão pede o que é incorreto afirmar. Realmente uma restrição divide o espaço ortogonal em dois campos. Em um deles, estão as infinitas soluções possíveis ou permitidas, e não as recomendáveis. No outro campo, estão as infinitas soluções que não são permitidas ou não são possíveis; nunca as não recomendáveis. O próprio termo recomendável é inapropriado para descrever as restrições nessa acepção. 77 Re vi sã o: C ris tin a - Di ag ra m aç ão : M ár ci o - 02 -0 5- 20 13 Pesquisa OPeraciOnal Questão 2. O modelo matemático utilizado na programação linear é um sistema de equações e inequações. As inequações podem ser transformadas em equações por meio da introdução de variáveis diversas. Sobre isso, foram feitas as afirmações: I – Um sistema de equações só é determinado quando a quantidade de incógnitas é igual à quantidade de equações. II – Uma variável de folga ou residual é utilizada quando a desigualdade for do tipo ≤; é uma variável não negativa somada ao lado esquerdo da desigualdade; é numericamente igual à diferença entre o termo independente e os valores à
Compartilhar