Programação Linear

66
Programaç Programaç ão ão Linear Linear

description

Programação Linear. Problema. 1º Define o problema. 2º Formula o objectivo. 3º Avalia as várias alternativas. Escolhe a melhor via. Problemas simples. Recurso à intuição e à experiência. Problemas complexos. Métodos científicos. Programação Linear. - PowerPoint PPT Presentation

Transcript of Programação Linear

Page 1: Programação Linear

ProgramaProgramaçãoção

LinearLinear

Page 2: Programação Linear

Problema1º

Define o problema

2ºFormula o objectivo

3ºAvalia

as várias alternativas

Escolhe a melhor via

Page 3: Programação Linear

Problemas simples

Problemas complexos

Recurso à intuição e à experiência

Métodos científicos

Programação Linear

Page 4: Programação Linear

Afinal o que é a Programação Linear?

A Programação Linear consiste em optimizar (maximizar ou minimizar) uma dada função linear, que se chama função objectivo, definida num dado conjunto convexo, tendo em conta que as variáveis estão sujeitas a restrições.

Page 5: Programação Linear

Nota HistóricaSéculo III a.C – Euclides

Livro III – ( Procurava encontrar a maior e a menor distância de um ponto a uma circunferência)

Livro IV – ( Descreveu uma forma de obter um Paralelogramo de área máxima e com um dado perímetro)

Page 6: Programação Linear

1838 - Cournot (incluiu no seu estudo a determinação do ponto de equilíbrio que origina o lucro máximo)

1759 – Quesnay (publica o Tableau Economique que pode ser considerado a primeira grande tentativa de modelizar a economia)

1874 – Walras (publica o Sistema de Equilíbrio Geral onde procura a melhor forma de interpretar a economia como um todo)

Page 7: Programação Linear

1937 – Von Neumann (publica A Model of General Economic Equilibrium onde é formulado o modelo de Programação Linear dinâmica, em que admite métodos alternativos de produção simples ou conjunta.)

1939 – Kantorovich (formulou rigorosamente um problema de Programação Linear no trabalho Métodos Matemáticos de Organização e Planeamento da Produção, mas não apresentou um algoritmo de resolução)

O grande salto da Programação Linear é dado através das aplicações em problemas de transportes na década de 40 (em particular, pelas Forças Armadas durante a Segunda Guerra Mundial).

Page 8: Programação Linear

1947 – Dantzig (trabalhou no Pentágono como conselheiro matemático, onde era frequentemente chamado para resolver problemas de planeamento. Como a maioria destes diziam respeito à economia aconselhou-se junto ao economista Koopmans)

No entanto, contrariamente ao que Dantzig pensou, os economistas ainda não tinham métodos de resolução de tais problemas.

Foi então que Dantzig propôs o Método Simplex que tornou possível a solução de problemas de optimização de vários tipos.

Page 9: Programação Linear

Um ano mais tarde…

Page 10: Programação Linear

Koopmans e Dantzig encontraram-se.

Porque não reduzir o nome de Programação de Estruturas Lineares

para Programação Linear?

É isso! A partir de

agora é esse o seu nome.

Nasceu assim a designação de Programação Linear.

Desde então, as aplicações da Programação Linear não cessaram.

Page 11: Programação Linear

Onde se aplica?Os domínios de aplicação da Programação Linear são

vastíssimos. Por exemplo:

Gestão de empresas;

Problemas de transportes;

Estrutura financeira dos bancos;

Obtenção de misturas óptimas;

Planeamento agrícola;

Estratégias militares, …

Page 12: Programação Linear
Page 13: Programação Linear

A Direcção de Marketing do IKEA sugere o lançamento de um novo modelo de secretária e de

estante em substituição dos modelos actuais.

Page 14: Programação Linear

Aquela Direcção não vê dificuldade de colocação no mercado para as estantes enquanto que aconselha que a produção mensal de secretárias não ultrapasse as 160 unidades.

Após estudos levados a cabo pela Direcção de Produção, conclui-se que: A disponibilidade mensal do Departamento de Estampagem é de 720 horas-máquina; A disponibilidade mensal do Departamento de Montagem e Acabamento é de 880 horas-homem; Cada secretária necessita de 2 horas-máquina de Estampagem e 4 horas-homem de Montagem e Acabamento; Cada estante necessita de 4 horas-máquina de Estampagem e 4 horas-homem de Montagem e Acabamento.

Page 15: Programação Linear

As margens brutas unitárias estimadas são de 60 euros para as secretárias e 30 euros para as estantes.

A empresa pretende determinar o plano de produção mensal para estes novos modelos que maximiza a margem bruta.

Page 16: Programação Linear

Sejam:x, o número de secretárias;y, o número de estantes;z, a margem bruta total.

Variáveis de decisão

Page 17: Programação Linear

OBJECTIVOOBJECTIVO: determinar valores para estas variáveis que maximizem

z = 6x + 3yz = 6x + 3y (em 10 euros)

Restrições impostasRestrições impostas pelas limitações da capacidade produtiva e do mercado.

Page 18: Programação Linear

Linguagem corrente

Linguagem Matemática

Cada secretária necessita de 2 horas-máquina

2x

Cada estante necessita de 4 horas-máquina

4y

A disponibilidade mensal é de 720 horas-máquina

2x + 4y ≤ 720

Page 19: Programação Linear

Linguagem corrente

Linguagem Matemática

Cada secretária necessita de 4 horas-máquina

4x

Cada estante necessita de 4 horas-máquina

4y

A disponibilidade mensal é de 880 horas-máquina

4x + 4y ≤ 880

Page 20: Programação Linear

Linguagem corrente

Linguagem Matemática

A produção mensal de

secretárias não pode ultrapassar as 160 unidades.

x ≤ 160

O número de secretárias não pode

ser negativox ≥ 0

O número de estantes não pode

ser negativoy ≥ 0

Page 21: Programação Linear

As , indicam-nos que os pares ordenados (x, y) se encontram no primeiro quadrante. condições de não negatividade

As variáveis que entram na formulação do problema não podem assumir valores negativos. Por isso, em geral, a não negatividade das variáveis é considerada uma restrição natural, que acontece pelo facto de muitas das actividades só poderem ser executadas a níveis não negativos.

Page 22: Programação Linear

O problema consiste em escolher x e y por forma a maximizar z = 6x + 3y sujeito a 2x + 4y ≤ 720 4x + 4y ≤ 880 x ≤ 160 x, y ≥ 0.

Page 23: Programação Linear
Page 24: Programação Linear

Conjunto das soluções admissíveis ou região de validez

É toda a solução que satisfaz as restrições do problema e as restrições da não negatividade. Note-se que uma solução possível não precisa optimizar a função objectivo, e frequentemente há infinitas soluções possíveis.

Page 25: Programação Linear

Procure(m)-se o(s) ponto(s) situado(s) nesta região que maximiza(m) o valor de z = 6x + 3y.

Vai proceder-se por tentativas. O processo baseia-se na representação gráfica da recta 6x + 3y = k (com k constante).

k = 300

k = 600

Page 26: Programação Linear

Trace-se uma qualquer recta de nível e desloque-se paralelamente a si própria, no sentido do crescimento de z até ao(s) último(s) ponto(s) de contacto com a região admissível.

Page 27: Programação Linear

De acordo com esta regra, a solução óptima é x* = 160 e y* = 60, valores que dão, respectivamente, o número de secretárias e estantes a produzir por mês pelo IKEA.

Deste programa de produção resulta para a empresa uma margem bruta mensal de 11400 euros.

Page 28: Programação Linear
Page 29: Programação Linear

Uma das tarefas propostas

para a “Quinta das Celebridades”“Quinta das Celebridades” consiste em determinar as quantidades de cada tipo de ração que devem ser dadas diariamente a cada animal de forma a conseguir uma certa qualidade nutritiva a um custo mínimo.

Page 30: Programação Linear

Ração

Ing. Nutritivos

Granulado FarinhaQuantidade

mínima requerida

Hidratos de carbono 20 50 200

Vitaminas 50 10 150Proteínas 30 30 210

Custo (cênts/kg) 10 5

Os dados relativos ao custo de cada tipo de ração, às quantidades mínimas diárias de ingredientes nutritivos básicos a fornecer a cada animal, bem como às quantidades destes existentes em cada tipo de ração (g/kg) constam no quadro seguinte:

Page 31: Programação Linear

Mas o que é isto???!!!

Vamos ajudar José Castelo Branco a formalizar o problema…

Page 32: Programação Linear

x , a quantidade em quilogramas de granulado a fornecer diariamente a cada animal;

y, a quantidade em quilogramas de farinha a fornecer diariamente a cada animal;

O custo total (em cêntimos) a suportar diariamente com a alimentação de cada animal é

z = 10x+5yz = 10x+5y

Objectivo dos concorrentesObjectivo dos concorrentes: minimizar o custo total.

Page 33: Programação Linear

As possibilidades de escolha estão limitadas pelas seguintes restrições relativas ao regime alimentar de cada animal:

20x + 50y ≥ 200

O primeiro membro desta desigualdade exprime a quantidade (g) de hidratos de carbono a fornecer diariamente. O segundo membro exprime, por sua vez, a quantidade quotidiana mínima necessária destes nutrientes.

Analogamente para as vitaminas:

50x + 10y ≥ 150

E para as proteínas:

30x + 30y ≥ 210

Page 34: Programação Linear

Sabendo que a quantidade de cada ração a fornecer diariamente é não negativa, isto é, x ≥ 0 e y ≥ 0, tem-se, finalmente, o modelo de programação linear que permite estabelecer a “dieta” dos animais:

Minimizar z = 10x + 5y

Sujeito a 20x + 50y ≥ 200 50x + 10y ≥ 150 30x + 30y ≥ 210 x ≥ 0, y ≥ 0

Page 35: Programação Linear

É fácil concluir que a solução pretendida é x* = 2 e y*= 5, valores que dão, respectivamente, as quantidades (em quilogramas) de granulado e farinha a fornecer diariamente a cada animal. Desta “dieta” resulta para a quinta um custo de alimentação diário com cada animal de 45 cêntimos.

Page 36: Programação Linear

Considere-se o seguinte problema:

maximizar z = 2x + y

sujeito a 3x + 4y ≤ 12 4x + 2y ≤ 10

x, y ≥ 0.Conclui-se que z = 5 é o valor máximo da Função Objectivo.

É uma função linear, que vamos pretender optimizar, isto é, maximizar ou minimizar;

Page 37: Programação Linear

Igualmente se conclui que quer o ponto extremo A quer o ponto extremo B são soluções óptimas do problema; por outras palavras, neste caso, dois pontos extremos conduzem ao mesmo valor (máximo) para a Função Objectivo. Mais, qualquer ponto da aresta AB é também solução óptima, dado que a recta de nível z = 5 assenta sobre aquela aresta; existe pois uma infinidade de soluções óptimas.

Havendo um domínio de soluções possíveis e não havendo solução ilimitada, solução óptima é a solução possível que optimiza a função objectivo. Nesse caso, poderá haver uma, várias ou infinitas soluções óptimas.

Page 38: Programação Linear

Em qualquer dos problemas anteriores pode afirmar-se que se está perante problemas de Programação Linear “bem comportados”. Existe contudo a possibilidade de situações “anómalas”.

Considere-se então o seguinte problema:

maximizar z = 2x + 3y

sujeito a 2x + 2y ≥ 6 -x + y ≤ 1 y ≤ 3 x, y ≥ 0.

Page 39: Programação Linear

Nesta situação conclui-se que a Função Objectivo pode assumir valores arbitrariamente grandes e, consequentemente, não existe um valor máximo finito para z. Sempre que se verifica esta situação, diz-se que se está em presença de solução não limitada.

Deve contudo salientar-se que o facto do conjunto das soluções admissíveis ser não limitado não implica necessariamente que a solução seja não limitada.

Page 40: Programação Linear

Está nesta situação o exemplo 2 e o seguinte problema:

maximizar z = -x + 3y

sujeito a 2x + 2y ≥ 6 -x + y ≤ 1 y ≤ 3 x, y ≥ 0.

Page 41: Programação Linear

Pode ainda acontecer que o conjunto das soluções seja não limitado e o valor óptimo de z seja finito com variáveis a poderem assumir valores arbitrariamente grandes na solução óptima. Neste caso, existem soluções óptimas alternativas, como se ilustra através do seguinte problema:

maximizar z = -2x + 4ysujeito a -x + y ≤ 1 x - 2y ≥ -4 x, y ≥ 0.

O valor máximo da Função Objectivo é 8. Mais, qualquer ponto (x, y) da aresta do conjunto das soluções admissíveis que se “prolonga” até infinito conduz a z = 8 e é portanto solução óptima do problema. É evidente que embora a Função Objectivo não possa exceder o valor 8, as variáveis x e y podem assumir valores arbitrariamente grandes.

Page 42: Programação Linear

Outra situação “anómala” que pode surgir, normalmente derivada de erros de formalização, é a não existência de qualquer solução admissível. Isto pode acontecer por não existirem valores das variáveis a satisfazerem as restrições do problema ou as condições de não negatividade, ou ambas simultaneamente.

Neste caso o problema diz-se impossível. O exemplo seguinte ilustra esta situação:

minimizar z = x + 2ysujeito a x + y ≥ 3 2x + y ≤ 2 x, y ≥ 0

Page 43: Programação Linear
Page 44: Programação Linear

Para angariarem fundos para o Carro da “Queima das Fitas”, os alunos do 3ºano de Matemática optaram por vender 300 t-shirts e 600 esferográficas.

Para tal, decidiram fazer dois tipos de lotes:

tipo A: uma t-shirt e uma esferográfica;

tipo B: duas t-shirts e cinco esferográficas.

Os lotes do tipo A foram vendidos a 8€ e os do tipo B a 18€.

Page 45: Programação Linear

Quantos lotes de cada tipo convém formar Quantos lotes de cada tipo convém formar para obter o lucro máximo com a sua venda?para obter o lucro máximo com a sua venda?

Há 300 t-shirts e 600 esferográficas.

Comecemos por identificar as incógnitas do problema que são:

x, número de lotes de tipo A

y, número de lotes de tipo B

Graficamente, x e y podem ser tomados, respectivamente, como coordenadas de um ponto.

Page 46: Programação Linear

Número de lotes

Número de t-shirts

Número de

esferográficas

Lucro

Tipo A x x x 8x

Tipo B y 2y 5y 18y

Total x + y x + 2y x + 5y 8x + 18y

Page 47: Programação Linear

Restrições:

O número de lotes de cada tipo é não negativo, ou seja, x ≥ 0 e y ≥ 0, com x e y inteiros.

O número de t-shirts não pode ser superior a 300, isto é, x + 2y ≤ 300 y ≤ 150 – 1/2x.

O número de esferográficas não pode ser superior a 600, isto é, x + 5y ≤ 600 y ≤ 120 – 1/5x.

Page 48: Programação Linear

Desta região de validez fazem parte os vértices do polígono que a limita. Esses vértices vão ser determinados algebricamente:

x + 2y = 300 x = -2y + 300 x = -2y + 300 x + 5y = 600 x + 5y = 600 -2y + 300 + 5y = 600

x = -2y + 300 x = 100 3y = 300 y = 100

Os vértices do polígono são então os pontos de coordenadas:(0, 120), (100, 100), (300, 0) e (0, 0).

Page 49: Programação Linear

Qual a função objectivo? O lucro.

Como cada lote do tipo A custa 8€ e do tipo B custa 18€, a função linear (L) expressa-se por

L = 8x + 18y (1)

Pretende-se maximizar esta expressão.

A igualdade (1) pode ainda ser expressa por:

y = - 8/ 18x + L/18.

Tracemos uma recta dessa família, por exemplo, fazendo L = 680 obtém-se então a recta de equação y = - 8/18x + 40.

Page 50: Programação Linear

Todas as outras rectas da família são paralelas a esta e o valor de L cresce quando se desloca a recta paralelamente a si própria, da esquerda para a direita.

Achar a solução óptima equivale a determinar a recta com maior ordenada na origem que intersecta o polígono.

A solução (x, y) procurada é um dos vértices do polígono.

Page 51: Programação Linear

Como a solução (0, 0) é eliminada desde o início, decide-se analiticamente qual dos outros é a solução procurada:

8 x 0 + 18 x 120 = 21608 x 100 + 18 x 100 = 26008 x 300 + 18 x 0 = 2400

Verificamos então que (100, 100) é a solução óptima.

Page 52: Programação Linear

Para resolvermos o problema graficamente, devemos deslocar a recta paralelamente a si própria, de modo a passar por cada um dos vértices do polígono _ região de validez _ verificando em qual deles a recta adquire maior ordenada na origem.

Neste caso, isso acontece quando a recta passa em (100, 100).

Page 53: Programação Linear

Os elementos do Carro concluíram, que devem ser feitos 100 lotes do tipo A e 100 lotes do tipo B, obtendo-se, assim, um lucro de 2600 euros.

Está encontrada a solução do problema.

Page 54: Programação Linear

E se os preços dos lotes fossem outros?

Page 55: Programação Linear

A Tesoureira argumentou que se poderiam mudar os preços dos lotes sendo o lote do tipo A vendido a 4€ e o lote do tipo B a 20€.

Todas as restrições anteriores se mantêm, mudando apenas a função objectivo que passa a ser

L = 4x + 20y.

Page 56: Programação Linear

Qual será agora a solução óptima?

Ora, y = -1/5x + L/20.

Faça-se, por exemplo, L = 2000.Obtém-se então, y = - 1/5x + 100

Façamo-la deslocar-se paralelamente a si própria de baixo para cima, procurando a paralela em que L é máximo.

Page 57: Programação Linear

L é máximo em:

(5, 119), (10, 118), (15, 117), (20, 116), …, (100, 100).

O conjunto destes pontos é a solução óptima. Obtendo-se sempre 600 euros de lucro.

Verifica-se que vai coincidir com a recta de equação x + 5y = 600 já traçada. Aí, a recta tem a maior ordenada na origem o que corresponde ao valor máximo de lucro.

Page 58: Programação Linear

E se cada lote A for vendido a 10€ e cada lote B a 20€ ?

Page 59: Programação Linear

A função objectivo é neste caso:

L = 10x + 20y

Tracemos, por exemplo, a recta de equação 10x + 20y = 4000

que corresponde à recta y = 200 – 1/2x.

Procedendo analogamente, verificamos que as soluções são:

(100, 100), (102, 99), …, (300, 0).

O lucro conseguido seria de 3000€.

Page 60: Programação Linear

Durante a reunião, foram analisadas as diferentes hipóteses que foram propostas e as soluções encontradas, ficando decidido que a 3ª situação é a que dará maior lucro, estando postas de parte a 1ª e a 2ª hipóteses.

Ficou decidido em acta que se iriam fazer 100 lotes do tipo A e 100 do tipo B.

Page 61: Programação Linear

O fundamental da resolução do problema consiste em:O fundamental da resolução do problema consiste em:

_ Identificar as _ Identificar as incógnitasincógnitas x e y; x e y;

_ Exprimir as várias _ Exprimir as várias restriçõesrestrições por equações ou inequações lineares em por equações ou inequações lineares em função de x e y, (graficamente, essas condições representam rectas ou função de x e y, (graficamente, essas condições representam rectas ou semiplanos);semiplanos);

_ Efectuar a sua _ Efectuar a sua conjunçãoconjunção, o que significa determinar graficamente a , o que significa determinar graficamente a intersecção dos conjuntos por elas definidos e delimitar uma intersecção dos conjuntos por elas definidos e delimitar uma região de região de validezvalidez onde se situam os onde se situam os pontos admissíveispontos admissíveis;;

_ Algebricamente, devemos utilizar as equações definidas pelas restrições _ Algebricamente, devemos utilizar as equações definidas pelas restrições para determinar as coordenadas dos pontos de intersecção das rectas duas a para determinar as coordenadas dos pontos de intersecção das rectas duas a duas e, assim, obter os vértices do polígono ( região de validez );duas e, assim, obter os vértices do polígono ( região de validez );

_ Identificar a _ Identificar a função objectivofunção objectivo, linear em x e y, e determinar um elemento , linear em x e y, e determinar um elemento da família de rectas que lhe corresponde, para a partir dela, encontrar a da família de rectas que lhe corresponde, para a partir dela, encontrar a solução óptimasolução óptima..

Page 62: Programação Linear

Função objectivo P = 3x + 2y

Page 63: Programação Linear

Evidenciámos que o seu surgimento veio de necessidades concretas da “ Sociedade Militar ” e que o seu desenvolvimento actual e permanente é fruto de problemas colocados pelas mais diversas áreas (Economia, Indústria, …).

Tem como finalidade, desenvolver a capacidade de usar a Matemática como instrumento de interpretação e intervenção no real. (Salientamos a dificuldade que muitas vezes há na própria formalização dos problemas que advém da complexidade dos enunciados e suas interpretações.)

Page 64: Programação Linear

Não abordámos, geometricamente, situações que envolvessem três variáveis, apesar de termos consciência de que, casos destes constituiriam generalização dos estudados (rectas e polígonos no espaço bidimensional corresponderiam, respectivamente, a planos e poliedros no espaço a três dimensões).

O método simplex é um método usado na Programação Linear, sobretudo em problemas que envolvam mais que duas variáveis e daí a sua utilização em termos computacionais.

Page 65: Programação Linear

FimFim

Page 66: Programação Linear

Trabalho realizado Trabalho realizado por:por:

Cati Matos;Cati Matos;Daniela Santos;Daniela Santos;Diana Salgado;Diana Salgado;Maria Alice Martins.Maria Alice Martins.