44
Programação Linear

Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Embed Size (px)

Citation preview

Page 1: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

ProgramaçãoLinear

Page 2: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Afinal o que é a Programação Linear?

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

Page 3: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 4: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 5: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 6: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 otimização de vários tipos

Page 7: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Um ano mais tarde…

Page 8: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 9: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Nasceu:Portland, 8 de Novembro de

1914 Morreu:

Califórnia, 13 de maio de 2005

George Bernard Dantzig

Page 10: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Foi um matemático Americano, que introduziu o método simplex e é considerado "pai da programação linear". Recebeu muitas honras, incluindo a Medalha Nacional de Ciências em 1975 e o primeiro Prêmio da Teoria John von Neumann em 1975.

Page 11: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

O pai, Tobias Dantzig, foi um matemático russo que estudou com Henri Poincaré em Paris. Tobias casou-se com uma estudante da universidade de Sorbonne (também estudante de matemática), Anja Ourisson, e com ela imigrou para os Estados Unidos, para Oregon. Tobias acreditava que a sua pronúncia com sotaque russo o impediria de conseguir empregos manuais, tais como pintor e construção de estradas. E foi nesse meio de pobreza económica que George nasceu.

Page 12: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 ótimas;

Planeamento agrícola;

Estratégias militares, …

Page 13: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,
Page 14: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 15: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Aquela Direçã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.

Page 16: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Após estudos levados a cabo pela Direçã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 17: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 18: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Sejam:

x, o número de secretárias;

y, o número de estantes;

z, a margem bruta total.

Variáveis

Page 19: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

OBJECTIVO: determinar valores para estas variáveis que maximizem

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

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

Page 20: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 21: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 22: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 23: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 24: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 25: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,
Page 26: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 27: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

De acordo com esta regra, a solução é x* = 160 e y* = 60, valores que dão, respetivamente, 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: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,
Page 29: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Uma das tarefas

propostas para a “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: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Ração

Ing. Nutritivos

Granulado FarinhaQuantidade

mínima requerida

Hidratos de carbono

20 50 200

Vitaminas 50 10 150

Proteí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: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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+5y

Objectivo dos concorrentes: minimizar o custo total.

Page 32: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 33: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 34: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

É 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 35: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,
Page 36: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Para angariarem fundos para o Carro da “Queima das Fitas”, os alunos do 12º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 37: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Quantos lotes de cada tipo convém formar 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 38: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Qual a função objetivo?

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 39: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 40: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 41: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 42: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 43: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

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 44: Afinal o que é a Programação Linear? A Programação Linear consiste em otimizar (maximizar ou minimizar) uma dada função linear, que se chama função objetivo,

Trabalho realizado por:Flávio RochaTiago Moreira

12ºFDisciplina: MatemáticaAno letivo: 2012/2013