Sunteți pe pagina 1din 13

BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar

Programação Matemática e Simulação


prof. Dr. Paulo Rogério Politano

Unidade 1 - Programação Linear e Modelagem

1.1Introdução

Programação Matemática e Simulação são tópicos da área da Pesquisa Operacional (PO).


O significado da palavra programação, neste texto, é de planejamento e não de codificação
de programa utilizado na Computação. Com o significado de planejamento, a origem da
palavra programação vem do inglês program, (cujo sinônimo em inglês é scheduling) que é
empregado no sentido de programar atividades/tarefas em sistemas de produção, de
transporte, financeiro, de computadores, militares, entre outros.

A Pesquisa Operacional (PO), por sua vez, consiste no desenvolvimento de métodos


científicos de sistemas complexos com a finalidade de prever e comparar estratégias ou
decisões alternativas e que procura determinar como melhor projetar e operar um sistema,
usualmente sob condições que necessitam a alocação de recursos finitos ou restritos.

A origem e início de desenvolvimento da PO data da segunda guerra mundial, quando os


militares ingleses iniciaram o uso de métodos científicos no auxílio para a tomada de decisões
na solução de problemas que otimizassem a utilização dos recursos usados nas operações
militares.

Atualmente, o termo pesquisa operacional está bastante difundido nas áreas de


engenharia, de administração, ciências da computação, economia, estatística e matemática,
entre outros. Existem sociedades científicas que estudam e promovem congressos científicos
de PO; no Brasil temos a SOBRAPO (Sociedade de pesquisa Operacional); nos EUA a principal
sociedade é a INFORMS. Existem outras sociedades, não menos importante, na Europa, Ásia e
Oceania, que realizam estudos, divulgam e consolidam a PO como uma ciência e tecnologia
de decisão.

Em síntese, a PO busca modelar problemas complexos, determinando os objetivos do


tomador de decisão e as restrições sob as quais deve operar. Ela se fundamenta na elaboração
e solução nos modelos matemáticos que buscam a otimização dos recursos dos sistemas sob
estudo, cuja análise dos resultados destes modelos auxiliam os tomadores de decisão a
escolherem a melhor alternativa de solução.

Podemos citar uma variedade de aplicações das técnicas da PO na solução de problemas


de ordem prática, tais como:

1
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

Rotas de transporte: Qual deve ser o roteiro de um caminhão de modo que entregue a carga
no menor tempo e menor custo?

Manufatura: qual deve ser o mix de produção de uma fábrica de modo que se tenha o lucro
máximo considerando as restrições de capacidade?

Alimentação de Animais: qual a composição da mistura de alimentos que devem ser utilizados
de forma que se encontre o mínimo custo considerando as quantidades de nutrientes
necessárias para a alimentação adequada do animal?

Siderurgia: quais são as quantidades necessárias de insumos a serem fundidas, de modo que a
composição da liga obtida satisfaça as normas técnicas da metalurgia e que o preço final da
liga seja o menor possível?

Serviços: Qual deve ser a quantidade de atendentes em um banco para que o tempo médio de
atendimento aos clientes não ultrapasse 5 minutos?

Veremos, posteriormente, que podem existir uma ou mais técnicas da PO empregadas


na solução dos problemas citados anteriormente. Dependendo da complexidade do sistema, a
aplicação destas técnicas requer o uso de algoritmos mais complexos e de uma grande
quantidade de variáveis e dados de entradas, o que leva ao emprego de softwares e
hardwares adequados para a execução das rotinas computacionais. Portanto, o emprego da
Tecnologia da Informação na PO é fundamental para suportar a solução de problemas e
auxiliar os tomadores de decisão.

Existem vários softwares comerciais disponíveis no mercado e alguns baseados em


software livre que podem ser aplicados em problemas de PO. Iremos utilizar o Solver do Open
Office no auxílio para a resolução dos exercícios desta disciplina.

1.2 Modelos

Modelos são representações de um sistema real. Eles são necessários para que se
possa selecionar e estudar o comportamento das principais variáveis de um sistema real que
realmente interessam na solução de um problema. O modelo deve apresentar relações
matemáticas ou lógicas que representem o comportamento de mundo real considerado.
Alguns exemplos de modelos:

Físicos ou icônicos: são representações de sistemas em escala reduzida. Exemplo: uma


maquete de uma barragem.

2
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

Analógico: quando as propriedades de um sistema são representadas por outro equivalente.


Exemplo: um sistema mecânico caro representado por um sistema elétrico equivalente de
baixo custo, onde as propriedades do sistema podem ser estudadas com riscos mínimos.

Matemáticos: os modelos matemáticos são representados por um conjunto de equações


matemáticas. Exemplo: modelo de PO aplicado na otimização de recursos.

1.3 Soluções do Modelo de PO

Dependendo do tipo de problema que ser quer resolver e da sua complexidade, adota-
se um ou uma combinação de métodos específicos de solução. Os métodos de solução que
buscam soluções ótimas empregam modelos matemáticos, desde que os algoritmos de
otimização possam resolver esses modelos; para soluções próximas do ótimo, quando a
solução ótima não é possível de ser realizada devido a grande complexidade dos modelos
matemáticos, empregam-se então heurísticas, que são algoritmos que buscam encontrar uma
boa solução. E métodos de soluções que não buscam a otimização, como os modelos de filas e
modelos de simulação, que tratam do estudo de filas.

Um resumo dos modelos de PO, agrupados nos tipos de solução, são apresentados a
seguir:

Soluções ótimas: Programação linear: aplicada a modelos cujas funções objetivo e restrições
são lineares e variáveis de decisão assumem valores reais. È a técnica mais empregada na PO;
Programação inteira: as variáveis de decisão assumem valores inteiros; Programação
dinâmica: o modelo original pode ser decomposto em subproblemas mais fáceis de serem
resolvidos; Otimização em redes: o problema pode ser modelado como uma rede;
Programação não-linear: as funções do modelo não são lineares.

Soluções que se aproximam de soluções ótimas: devido à complexidade do problema, são


empregadas heurísticas em programas computacionais, algumas delas baseadas em técnicas
de Inteligência Artificial, tais como redes neurais e algoritmos genéticos.

Soluções que não são ótimas: Teoria de filas e simulação são técnicas que tratam do estudo
das filas de espera. Não são técnicas de otimização, e estabelecem modelos para determinar
medidas de desempenho de filas de espera. Algumas das medidas mais comuns estudadas por
esses modelos são: tempo médio de espera na fila, tempo médio de atendimento de um
serviço e a utilização de servidores. Os modelos de filas utilizam probabilidade e modelos
estocásticos (teoria de filas) para analisar filas de espera, e possuem limitações para modelar
o comportamento de sistemas. Para problemas complexos onde se quer estudar o

3
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

comportamento do sistema ao longo de um período de tempo, incluindo a lógica de operação


de seus elementos, a simulação de eventos discretos é a ferramenta mais apropriada a ser
empregada. A simulação estima medições de desempenho reproduzindo o comportamento
real do sistema na escala de tempo. Ela pode ser utilizada para estudar praticamente
qualquer sistema.

Nesta Unidade vamos estudar e resolver problemas que podem ser aplicados modelos
de programação linear.

1.4 O Processo de Aplicação da PO

Podemos empregar uma metodologia para a resolução de um problema utilizando a


PO, que envolvem várias etapas. São as seguintes:

Definição do Problema: Esta etapa define a limitação do problema a ser estudado,


identificando os principais elementos (variáveis) de um problema de decisão: descrição das
alternativas de decisão; determinação do objetivo de estudo; especificações sob os quais o
sistema modelado deve funcionar.

Construção do Modelo: Explicita, da definição e especificações do problema, em relações


matemáticas. Se o modelo resultante se ajustar a um dos métodos matemáticos padrão, tal
como programação linear, pode-se chegar a uma solução utilizando algoritmos disponíveis. Se
as relações matemáticas forem muito complexas para se determinar uma solução analítica,
pode-se optar para em usar uma abordagem heurística ou uma simulação. Pode haver casos
de modelos matemáticos, de simulação e de heurísticas combinadas para resolver um
problema.

Solução do Modelo: A solução se baseia na utilização de algoritmos de otimização. Pode-se


também realizar a análise de sensibilidade, que fornece informações adicionais quando o
modelo passa por algumas mudanças de parâmetros. A análise de sensibilidade é necessária
quando os parâmetros do modelo não podem ser estimados com precisão. Então, é importante
estudar o comportamento da solução ótima na vizinhança dos parâmetros estimados.

Validação do Modelo: Verifica se o modelo está fazendo o que se propõe a fazer, ou seja, se
a solução do modelo está de acordo com o comportamento do sistema real. O método padrão
para verificar se o modelo é valido é comparar seus resultados com os dados históricos do
sistema real. Caso o modelo proposto é de um novo sistema, não haverá dados históricos

4
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

armazenados. Neste caso, pode-se usar a simulação como uma ferramenta para verificar a
validade do modelo matemático com o apoio de especialistas da área do problema.

Implementação da Solução: Após o modelo validado, o resultado da execução do modelo será


implementado em ações para o sistema sob estudo.

1.5 Um Modelo de Programação Linear e sua solução gráfica para um problema de


maximização

Considere o seguinte problema: Uma empresa de cosmético fabrica dois tipos de


shampoo: Cabelo seco (SCS) e cabelo oleoso (SCO). O lucro por unidade de SCS é de R$ 10,00
e de SCO é de R$ 5,00. A empresa necessita de 2 horas para fabricar uma unidade de SCS e de
3 horas para fabricar uma unidade de SCO. O tempo mensal disponível da fábrica é de 120
horas. As demandas esperadas para os dois produtos não devem ultrapassar 45 unidades de
SCS e de 30 unidades de SCO por mês. Quais devem ser as quantidades de SCS e de SCO para
que se obtenha o máximo lucro?

O problema pede para se determinar (decidir) as quantidades de cada produto,


considerando as restrições de capacidade e o objetivo de se obter o máximo lucro
(otimização). Quantas alternativas de solução pode-se ter neste problema? Qual solução
(quantidades de SCO e SCS) se obtém o máximo lucro?

Pode-se tentar encontrar a solução por tentativa e erro, mas seria muito desgastante
utilizar este procedimento. A saída é desenvolver um modelo matemático baseado em um
modelo geral de PO:

Maximizar uma função objetivo sujeito a restrições

No caso deste problema, o modelo resultante é o seguinte:

Considerar 𝑋1 = quantidade de SCS

𝑋2 = quantidade de SCO

Função objetivo: 𝒎𝒂𝒙 𝑧 = 10𝑥1 + 5𝑥2 (1)

5
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

Sujeito as Restrições: 2𝑥1 + 3𝑥2 ≤ 120 (2)

𝑥1 ≤ 45 (3)

𝑥2 ≤ 30 (4)

𝑥1 ≥ 0 (5)

𝑥2 ≥ 0 (6)

Vamos discutir o processo de elaboração do modelo.

As variáveis X1 e X2 são chamadas de variáveis de decisão, pois são as variáveis onde


serão encontradas as quantidades de cada tipo de shampoo que multiplicadas pelo seu lucro
respectivo irá gerar o máximo lucro que a empresa pode obter (equação 1).

Porém, existe limitação de capacidade, representada pela quantidade total de horas


disponíveis (120 horas). Essa quantidade pode ser totalmente utilizada por X1 e X2,
representada pela equação 2.

As equações 3 e 4 representam as restrições de demanda para cada produto, ou seja,


espera-se no máximo, vender 45 unidades do shampoo para cabelo seco e 30 unidades para
cabelo oleoso.

A equação 5 e 6 representam a restrições das quantidades de X1 e X2 não serem


negativas ( não teriam sentido prático a produção com quantidades negativas).

Como temos apenas duas variáveis de decisão, usaremos o método gráfico para
encontrar a solução ótima deste problema.

1.6 O Método de Solução Gráfica

Traçamos os eixos x1 e x2, que determinam o plano onde iremos encontrar o conjunto
de soluções viáveis. Vamos representar cada inequação das restrições nesse plano. Vamos
pegar, por exemplo, as inequações: 𝑥1 ≤ 45 ; 𝑥2 ≤ 30; 𝑥1 ≥ 0 𝑒 𝑥2 ≥ 0.

Traçando essas inequações no plano, temos o seguinte gráfico apresentado na figura 1.1:

6
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

x2
x1  45

50

B(0,30) D(45,30) x2  30

20

A(0,0) C (45,0)
x1
-20 20 60
-10

Figura 1.1 Construção da solução gráfica: eixos x1 e x2 e as inequações 𝑥1 ≤ 45 ; 𝑥2 ≤ 30;


x1 ≥ 0 e x2 ≥ 0.

O retângulo formado pelos pontos A, B, C e D comuns as inequações é um conjunto de


soluções viáveis. Mas falta mais uma inequação para ser representada no plano: 2𝑥1 + 3𝑥2 ≤
120. Traçando essa inequação no plano, temos o seguinte resultado apresentado na figura
1.2:

x2
x1  45

B(0,30) E (15,30) D(45,30) x  30


2

F (45,10)

x1
-20
A(0,0) C (45,0)
2 x1  3x2  120

-20

Figura 1.2 Construção da solução gráfica: representando a inequação 2𝑥1 + 3𝑥2 ≤


120

7
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

Formou-se um polígono com pontos extremos (vértices) A, B, C, E e F. Em toda essa


região formada pelo polígono, temos o conjunto de soluções viáveis e na região externa, as
inviáveis. Vamos encontrar a solução ótima representada pelo lucro máximo na região do
polígono, incluindo seus lados e vértices. Pegamos a equação da função objetivo e a
representamos como uma reta que pode se deslocar sobre o polígono. O seu deslocamento se
dá a partir da origem, cujo valor da função objetivo é zero, e vai da esquerda para a direita
até encontrar o ponto mais distante, no caso o ponto F. Esse ponto é o que fornece o valor
máximo (lucro máximo) da função objetivo.

Os pontos A,B,C,D e E são os vértices do polígono, e são os pontos candidatos a


determinarem o valor máximo da função objetivo, como visto na figura. Assim, usando a
função objetivo, podemos pegar cada ponto e calcular o seu valor, pois com um desses pontos
podemos encontrar o máximo valor. Fazendo então para os pontos:

A (0,0) => z = 10(0) + 5(0) = 0

B (0,30) => z = 10(0) + 5(30) = 150

C (45,0) => z = 10(45) + 5(0) = 450

E (15,30) => z = 10(15) + 5(30) = 300

F (45,10) => z = 10(45) + 5(10) = 500

Então, o lucro máximo é de 500, para uma produção de 45 unidades de shampoo para
cabelo seco e 10 unidades de shampoo para cabelo oleoso. A solução gráfica é dada na figura
1.3.
x2

x1  45

B(0,30) E (15,30) D(45,30) x2  30

F (45,10)

x1
A(0,0) C (45,0)
-20
2 x1  3x2  120

-20 0  z  10 x1  5x2 500  z  10 x1  5x2

Figura 1.3. Solução gráfica encontrada.

8
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

É claro que se o número de restrições aumenta e o número de variáveis aumenta, o


número de pontos extremos aumenta também. Para duas variáveis de decisão, e um número
pequeno de inequações de restrições, o método de solução gráfica é viável de ser realizado.
Com um número maior de variáveis, o método simplex é recomendado e o uso de ferramentas
computacionais também.

Outra questão a ser observada se relaciona a uma condição onde a reta da função
objetivo ao atingir o ponto mais distante em relação à origem, coincide com um dos lados do
polígono. Nesse caso, não teremos apenas uma solução ótima, mais uma infinidade, desde
que os pontos estejam localizados em um dos lados do polígono.

1.7 Um Modelo de Programação Linear e sua solução gráfica para um problema de


minimização

Um problema clássico de minimização que aparece em vários livros e textos de PO é o


problema de minimização na formulação de ração. Este problema será usado como exemplo
de modelagem e solução gráfica para um problema de minimização com apenas duas variáveis
de decisão. Não representa uma situação real, será usado apenas para fins didáticos. Neste
exemplo, procura-se determinar a composição dos elementos que compõem a ração de modo
que se atendam aos requisitos nutricionais dos animais a um custo mínimo.

Vamos produzir uma ração a um custo mínimo com a mistura de dois componentes A e
B, com custo de R$ 0,10 para o componente A (farinha de carne) por kilo e R$ 0,05 para o
componente B (osso moído) por kilo. O componente A, por kilo, possui 10 unidades do
nutriente 1 (proteína) e 6 unidades do nutriente 2 (gordura) e o componente B, por kilo,
possui 6 unidades do nutriente 1 (proteína) e 24 unidades do nutriente 2 (gordura). Sabe-se
que as necessidades mínimas que um animal deve ingerir, por dia, do nutriente 1 (proteína) é
de 30 unidades e do nutriente 2 (gordura) é de 48 unidades. A pergunta é: quais as
quantidades necessárias do componente A e do componente B para se ter o menor custo para
produzir a ração, por dia, que atenda as necessidades mínimas nutricionais de um animal?

Minimizar uma função objetivo sujeito a restrições

No caso deste problema, o modelo resultante é o seguinte:

Considerar 𝑋1 = quantidade do componente A (farinha de carne)

𝑋2 = quantidade do componente B (osso moído)

9
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

Função objetivo: 𝑚𝑖𝑛 𝑧 = 0, 10𝑥1 + 0,05𝑥2 (1)

Sujeito as Restrições: 10𝑥1 + 6𝑥2 ≥ 30 (2) (quantidade mínima de proteína)

6𝑥1 + 24𝑥2 ≥ 48 (3) (quantidade mínima de gordura)


𝑥1 ≥ 0 (4)

𝑥2 ≥ 0 (5)

Vamos também discutir o processo de elaboração deste modelo de minimização.

X1 e X2 são as variáveis de decisão, pois são as variáveis onde serão encontradas as


quantidades (em kilos) de cada tipo de componente da ração que multiplicadas pelo seu custo
respectivo irá gerar o mínimo custo que se pode obter para a produção da ração (equação 1).

Porém, existem restrições quanto às quantidades mínimas de nutrientes na ração que


o animal deve ingerir. Para o nutriente 1 (proteína), tem que ter, no mínimo, 30 unidades
(composto pelo componente A e B), representada pela inequação 2 e 48 unidades do
nutriente 2 (gordura), no mínimo, para cada kilo de ração (composto pelo componente A e B),
representado pela inequação 3.

As inequações 4 e 5 representam a restrições das quantidades de X1 e X2 não serem


negativas (não teriam sentido prático produção com quantidades negativas)

Como temos apenas duas variáveis de decisão, usaremos o método gráfico para
encontrar a solução ótima deste problema.

1.8 O Método da Solução Gráfica para o problema de minimização

Traçamos os eixos x1 e x2, que determinam o plano onde iremos encontrar o conjunto
de soluções viáveis. Representamos cada inequação das restrições no plano formado pelos
eixos x1 e x2. Traçando essas inequações no plano, temos o seguinte gráfico representado na
figura 1.4.

A região do plano onde se encontram o conjunto de soluções viáveis é a região


formada entre os eixos x1 e x2 e a parte superior dos segmentos de reta AP e PD. A reta da

10
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

função objetivo se deslocando da parte superior para a parte inferior da região irá encontrar
o ponto cujos valores de x1 e x2 fornecerão o menor custo para produzir a ração.

Os pontos A, P e D são os pontos mais extremos da região, e são os pontos candidatos


a determinarem o valor mínimo da função objetivo, como mostrado na figura. Assim, usando
a função objetivo, podemos pegar cada ponto e calcular o seu valor, e o que apresentar o
menor valor é a solução ótima deste problema de minimização. Calculando para os pontos:

A(0,5) => z = 0,10(0) + 0,05(5) = 0,25

P(2,1;1,5) => z = 0,10(2,1) + 0,05(1,5) = 0,285

D(8,0) => z = 0,10(8) + 0,05(0) = 0,80

O ponto A é o ponto mais extremo para a equação da reta da função objetivo,


portanto é o que fornece o valor mínimo. Então, o custo mínimo é de R$ 0,25, para uma
quantidade de ração com 5 kilos do componente B (osso moído) e nenhuma quantidade de
farinha de carne.

A solução gráfica é mostrada na figura 1.4

x2

z  0,10 x1  0,05x2

A(0,5)

C (0,2) P(2,1 ; 1,5)


D(8,0)
x1
B(3,0)
-2 6 x1  24 x2  48
-2
10 x1  6 x2  30

Figura 1.4: Solução gráfica para um problema de minimização.

11
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

1.9 Modelo de Programação Linear envolvendo mais de duas variáveis de decisão

Considere um modelo de programação linear derivado de um problema:

Função objetivo: max z = 2x1+ x2 + 3x3 + 4x4 + x5

Sujeito as Restrições: 2x1+ x5 ≤ 4

x1 + 4x2 ≤ 8

x2 + 5x3 ≤ 4

4x3 + x4 ≤ 6

3x4 + x5 ≤ 12

Podemos notar que temos cinco variáveis de decisão. Não é possível resolver esse
problema pelo método gráfico. Assim, temos que usar um programa computacional que possa
representar esse modelo, e através de sua execução, chegar ao resultado. Para isso, o
programa computacional usa um algoritmo baseado no método simplex. O método será
estudado na próxima unidade.

O software que iremos usar para a solução de modelos de programação linear é o


Solver do BrOffice.

1.10 Referências Bibliográficas

1 – Taha, H. A.; Pesquisa Operacional. Pearson Addison Wesley, 8ª Edição, 2008.

12
BACHARELADO EM SISTEMAS DE INFORMAÇÃO – EaD UAB/UFSCar
Programação Matemática e Simulação
prof. Dr. Paulo Rogério Politano

2 – Arenales, M.; Armentano, V.; Morabito, R.; Yanasse, H.; Pesquisa Operacional. Ed.
Campus, 2007.

3 - Lachtermacher, G.; Pesquisa Operacional na Tomada de Decisões - 3ª Edição. Ed. Campus,


2007.

4 - Prado, D. S.; Programação Linear – vol 1 – Editora DG, 1999.

13

S-ar putea să vă placă și