Programação Linear Aplicada · Capítulo 6 · Encerramento

Cap. 6
Programação Inteira

Modelagem, métodos de solução e aplicações

leitura e prática ~95 minProf. Clayton J A SilvaIBM0803

Objetivos de aprendizagem

  • Distinguir PI pura, mista e binária e formular modelos com domínios adequados.
  • Resolver e comparar relaxação linear, arredondamento e solução inteira.
  • Acompanhar ramificação, limites e encerramento de nós no Branch and Bound.
  • Representar dependências e exclusões com variáveis binárias.
  • Resolver os exemplos no Excel Solver e interpretar os resultados.

Da divisibilidade às decisões inteiras

Ao longo da disciplina, a Programação Linear permitiu organizar decisões de produção, transporte e alocação de recursos. Seus modelos combinam variáveis, função objetivo e restrições lineares. Uma hipótese importante é a divisibilidade: as variáveis podem assumir valores fracionários.

Essa hipótese é adequada para toneladas, litros e horas de operação. Porém, uma resposta como 3,6 caminhões ou 2,33 máquinas não representa diretamente uma decisão executável. Quando a decisão exige unidades indivisíveis, precisamos impor a integralidade.

Definição

Na Programação Linear Inteira, algumas ou todas as variáveis devem assumir valores inteiros. A função objetivo e as restrições permanecem lineares; muda o domínio das variáveis e, com ele, o conjunto de soluções admissíveis.

O conjunto inteiro está contido na região viável contínua. Por isso, o ótimo contínuo pode deixar de ser admissível e o Simplex, isoladamente, não assegura uma solução inteira. Este capítulo encerra a disciplina conectando a modelagem já estudada a decisões quantitativas e decisões do tipo sim ou não.

Fundamentação: Hillier e Lieberman, capítulo de Programação Inteira; Taha, capítulos de modelagem e programação inteira. Veja as referências.

PI pura, mista e binária

PI pura

Todas as variáveis de decisão são inteiras. Exemplo: quantidades de máquinas de dois tipos, x₁, x₂ ∈ ℤ≥0.

PI mista

Combina variáveis inteiras e contínuas. Exemplo: número de caminhões n ∈ ℤ≥0 e carga q ≥ 0, em toneladas, com q ≤ Cn.

PI binária

As variáveis assumem 0 ou 1. Exemplo: y = 1 se uma instalação for aberta; y = 0 caso contrário. É um caso particular da PI.

Estrutura matemática

Maximizar Z = Σ cⱼxⱼ Sujeito a: Σ aᵢⱼxⱼ ≤ bᵢ, para i = 1, …, m xⱼ ≥ 0, para j = 1, …, n xⱼ ∈ ℤ, para j pertencente ao conjunto I

Os coeficientes cⱼ representam contribuições ao objetivo; aᵢⱼ são consumos ou relações técnicas; bᵢ são limites. O conjunto I identifica as variáveis que exigem integralidade. Se I contém todas as variáveis, a PI é pura; se contém apenas parte delas, é mista. Restrições de igualdade e de mínimo também podem aparecer.

Roteiro de formulação

  1. Descrever a decisão, o horizonte de planejamento e as unidades.
  2. Definir cada variável e seu significado operacional.
  3. Construir a função objetivo, com unidades consistentes.
  4. Traduzir recursos, demandas e relações lógicas em restrições.
  5. Especificar domínios: contínuo, inteiro não negativo ou binário.
  6. Validar o modelo e interpretar a solução no contexto do problema.
Cuidado: coeficientes inteiros não tornam uma variável inteira. O domínio precisa ser declarado explicitamente. Base conceitual: Taha e Trick.

Modelagem: planejamento da produção

Uma empresa produz equipamentos A e B, vendidos em unidades indivisíveis. Cada unidade utiliza dois recursos limitados. O objetivo é maximizar o lucro do período. Os valores são didáticos e as quantidades de recursos usam unidades compatíveis com a tabela.

InformaçãoABDisponibilidade
Recurso 1217
Recurso 2127
Lucro unitário (R$)54—

Definimos x₁ como o número de equipamentos A e x₂ como o número de equipamentos B produzidos no período.

Maximizar Z = 5x₁ + 4x₂ Sujeito a: 2x₁ + x₂ ≤ 7 (recurso 1) x₁ + 2x₂ ≤ 7 (recurso 2) x₁, x₂ ∈ ℤ≥0

Trata-se de uma PI pura: ambas as variáveis são inteiras não negativas. Os limites de recursos continuam sendo restrições lineares. Não precisamos alterar a forma da função objetivo para representar a indivisibilidade.

Relaxação linear e limites

A relaxação linear retira temporariamente a exigência de integralidade, mantendo todas as outras restrições. Assim, podemos aplicar o método gráfico ou o Simplex.

No exemplo, a interseção das restrições ativas satisfaz 2x₁ + x₂ = 7 e x₁ + 2x₂ = 7. Subtraindo as equações, x₁ = x₂; substituindo, 3x₁ = 7.

x₁ = x₂ = 7/3 ≈ 2,3333 ZLP = 5(7/3) + 4(7/3) = 21

Os demais vértices são (0; 0), (3,5; 0) e (0; 3,5), com lucros 0, 17,5 e 14. Logo, o ótimo contínuo é 21. Ele não é uma solução admissível para equipamentos indivisíveis.

O papel dos limites

Na maximização, o ótimo da relaxação é um limite superior para o ótimo inteiro. Uma solução inteira viável fornece um limite inferior. Na minimização, os sentidos se invertem.

Isso decorre da inclusão entre conjuntos viáveis: retirar a integralidade amplia as possibilidades de escolha. Se a solução ótima da relaxação já for inteira, ela também será ótima para o problema inteiro.

Leitura de apoio: Trick, relação entre PI e PL; MIT OpenCourseWare, aulas de programação inteira.

Por que não basta arredondar?

Arredondar (7/3; 7/3) para (2; 2) produz uma solução viável: os dois recursos têm consumo 6, inferior ao limite 7. O lucro, entretanto, é apenas 18.

A combinação (3; 1) consome 7 unidades do recurso 1 e 5 do recurso 2. Seu lucro é 5(3) + 4(1) = 19, superior ao resultado arredondado.

Alternativax₁x₂ZSituação
Relaxação7/37/321Ótima contínua; não inteira
Arredondamento2218Viável; não ótima
Candidata inteira3119Viável; otimalidade demonstrada a seguir
Arredondamento para cima3327Inviável: ambos os consumos são 9
Conclusão: arredondar pode perder qualidade ou violar restrições. Mesmo arredondar para baixo não é uma regra geral de viabilidade em modelos com igualdades, demandas mínimas ou outras relações.

Branch and Bound: ramificação e limites

O método combina relaxações lineares e uma busca organizada em subproblemas. Ramificar significa dividir as possibilidades inteiras. Limitar significa usar o valor ótimo de cada relaxação para verificar se vale a pena continuar a busca. A melhor solução inteira conhecida é chamada de incumbente.

Etapa 1 / raiz

Resolver a relaxação

A raiz tem solução (7/3; 7/3), com limite superior 21. Como há variáveis fracionárias, precisamos ramificar.

Etapa 2 / dividir

Escolher x₁ = 7/3

Todo valor inteiro de x₁ satisfaz x₁ ≤ 2 ou x₁ ≥ 3. Criamos A e B acrescentando uma dessas condições às restrições originais. Nenhuma solução inteira é perdida.

Etapa 3 / resolver A e B

Comparar relaxações e encontrar uma incumbente

Em A, x₁ ≤ 2: o ótimo relaxado é (2; 2,5), com Z = 20; a variável x₂ ainda é fracionária. Em B, x₁ ≥ 3: o ótimo é (3; 1), com Z = 19. Como é inteiro, B é encerrado e essa solução torna-se a incumbente.

Não podemos encerrar A: seu limite 20 ainda supera o lucro 19 já alcançado.

Etapa 4 / ramificar A

Separar x₂ ≤ 2 de x₂ ≥ 3

Os dois filhos herdam x₁ ≤ 2 e todas as restrições originais. A1, com x₂ ≤ 2, tem ótimo (2; 2), Z = 18. A2, com x₂ ≥ 3, tem ótimo (1; 3), Z = 17. Ambos são inteiros e inferiores à incumbente. Encerramos os dois nós.

Quando encerrar um nó?

No exemplo, todos os nós finais foram encerrados por integralidade; os valores também permitem comparar os seus resultados com a incumbente. Nenhum ramo em aberto pode superar 19.

Solução ótima inteira: x₁ = 3, x₂ = 1, Z* = R$ 19 Folgas: recurso 1 = 0; recurso 2 = 2 Diferença para a relaxação: 21 − 19 = 2

A ordem de exploração pode variar sem alterar o ótimo comprovado. Em problemas grandes, a árvore pode crescer muito; implementações combinam seleção de nós, heurísticas e cortes. A compreensão exigida aqui é a lógica de ramificar, estabelecer limites e comprovar a solução, como discutido por Trick e pelo MIT.

Mais um exemplo com duas variáveis: contratação de veículos

Uma empresa precisa transportar pelo menos 18 toneladas em uma viagem. Pode contratar veículos pequenos, com capacidade de 4 toneladas e custo de R$ 40 por viagem, ou grandes, com capacidade de 7 toneladas e custo de R$ 65. Há veículos suficientes dos dois tipos e é permitido deixar parte da capacidade ociosa. Quantos contratar para minimizar o custo?

1. Variáveis e formulação

Sejam x₁ a quantidade de veículos pequenos e x₂ a quantidade de veículos grandes. Como não se contrata uma fração de veículo, ambas as variáveis são inteiras não negativas.

Minimizar C = 40x₁ + 65x₂ Sujeito a: 4x₁ + 7x₂ ≥ 18 (capacidade suficiente para a carga) x₁, x₂ ∈ ℤ≥0

A desigualdade é de mínimo: a capacidade contratada deve atender ou superar 18 toneladas. Exigir igualdade impediria combinações válidas com capacidade ociosa.

2. Relaxação linear

O custo por tonelada de capacidade é R$ 10 no veículo pequeno e aproximadamente R$ 9,29 no grande. Sem integralidade, a melhor opção seria usar somente o grande: x₁ = 0 e x₂ = 18/7, com custo 1170/7 ≈ R$ 167,14. Por ser uma minimização, esse valor é um limite inferior para o ótimo inteiro.

3. Solução inteira por enumeração reduzida

Fixada a quantidade de veículos grandes, escolhemos o menor número de pequenos que atende à carga. Contratar mais pequenos apenas aumentaria o custo.

Grandes x₂Pequenos x₁ mínimosCapacidade (t)Custo (R$)
0520200
1319185
2118170
3021195

Para x₂ ≥ 3, o custo é pelo menos R$ 195, mesmo sem veículos pequenos, e cresce com x₂. Portanto, nenhum caso omitido pode melhorar R$ 170. A tabela, junto desse limite, comprova a otimalidade.

Decisão ótima

Contratar um veículo pequeno e dois grandes: capacidade total de 18 toneladas, custo mínimo de R$ 170 e nenhuma capacidade ociosa.

Comparação: arredondar 18/7 para três veículos grandes gera uma solução viável de R$ 195, mas custa R$ 25 a mais que a solução ótima. No Solver, selecione minimizar, mantenha a restrição de capacidade com ≥ e declare as duas variáveis inteiras.

Exemplo elaborado para este capítulo, com valores didáticos.

Decisões do tipo sim ou não

Para escolher projetos, abrir instalações ou contratar fornecedores, usamos yⱼ = 1 quando a decisão é adotada e yⱼ = 0 caso contrário. A variável representa uma escolha, não uma quantidade física contínua.

RelaçãoRestrição bináriaInterpretação
DependênciayB ≤ yAB exige A; A não exige B
No máximo umayA + yB ≤ 1Pode escolher nenhuma ou apenas uma
Exatamente umayA + yB = 1Uma escolha é obrigatória
Pelo menos umayA + yB ≥ 1Ambas também são permitidas
Vincular produção e abertura0 ≤ q ≤ UySem abertura, q = 0; U é um limite válido

No último caso, q pode ser contínua e y é binária, formando um modelo misto. O valor U deve ser um limite justificável para a produção; não deve ser escolhido arbitrariamente grande.

Teste lógico: em yB ≤ yA, substituir yA = 0 obriga yB = 0. Já yA = 1 permite yB igual a 0 ou 1. Essa substituição ajuda a conferir o significado da formulação.

Sim ou não — exemplo 1: escolher investimentos

Uma pequena empresa dispõe de R$ 6 mil e avalia dois investimentos. Cada um pode ser realizado integralmente ou não ser realizado. Os valores são didáticos; os benefícios podem ser somados.

InvestimentoCusto (R$ mil)Benefício estimado (R$ mil)
A — equipamento47
B — divulgação35

1. Representar as decisões

Definimos y₁ = 1 se o investimento A for realizado e 0 caso contrário; y₂ = 1 se o investimento B for realizado e 0 caso contrário. Não são quantidades de equipamentos ou ações: cada variável indica apenas a escolha da alternativa apresentada.

2. Entender de onde vêm os coeficientes

Os números 4 e 3 são os custos da tabela. Multiplicar cada custo pela respectiva variável inclui o gasto quando a escolha é sim (1) e o elimina quando a escolha é não (0). O número 6 é o orçamento disponível. Já 7 e 5 são os benefícios usados na função objetivo.

Maximizar Z = 7y₁ + 5y₂ (benefício em R$ mil) Sujeito a: 4y₁ + 3y₂ ≤ 6 (gasto em R$ mil) y₁, y₂ ∈ {0, 1}

3. Testar as quatro combinações

(y₁, y₂)EscolhaGastoBenefícioSituação
(0, 0)Nenhum00Viável
(1, 0)Somente A47Viável e ótima
(0, 1)Somente B35Viável
(1, 1)A e B712Inviável: gasto maior que 6

Solução e interpretação

Escolher somente A: (y₁, y₂) = (1, 0). O benefício máximo viável é R$ 7 mil, o gasto é R$ 4 mil e sobram R$ 2 mil do orçamento. A combinação com maior benefício bruto, A + B, é descartada porque não cabe no orçamento.

Ideia central: primeiro verificamos quais combinações são permitidas; depois comparamos o benefício entre elas. Não é obrigatório gastar todo o orçamento.

Sim ou não — exemplo 2: uma escolha depende da outra

Uma empresa pode adquirir um software e contratar um treinamento específico para ele. O treinamento só pode ser contratado se o software também for adquirido. O orçamento é de R$ 3 mil. Para simplificar, os benefícios estimados abaixo são incrementais e aditivos: o benefício do treinamento se soma ao do software.

DecisãoCusto (R$ mil)Benefício adicional (R$ mil)
Adquirir software23
Contratar treinamento14

1. Definir variáveis e orçamento

Seja y₁ = 1 se o software for adquirido e y₂ = 1 se o treinamento for contratado; caso contrário, cada variável vale 0. Os custos 2 e 1 vêm da tabela, e o limite 3 vem do orçamento.

2. Acrescentar a dependência

A condição y₂ ≤ y₁ traduz “treinamento exige software”. Se y₁ = 0, ela obriga y₂ = 0. Se y₁ = 1, permite y₂ igual a 0 ou 1. Portanto, comprar o software não obriga a contratar o treinamento.

Maximizar Z = 3y₁ + 4y₂ (benefício em R$ mil) Sujeito a: 2y₁ + y₂ ≤ 3 (orçamento) y₂ ≤ y₁ (treinamento exige software) y₁, y₂ ∈ {0, 1}

3. Conferir orçamento e lógica

(y₁, y₂)EscolhaGastoBenefícioSituação
(0, 0)Nenhuma00Viável
(1, 0)Somente software23Viável
(0, 1)Somente treinamento14*Inviável: viola y₂ ≤ y₁
(1, 1)Software e treinamento37Viável e ótima

*O valor 4 é apenas a avaliação algébrica da função objetivo nessa combinação. Ela não representa uma alternativa permitida, pois o treinamento depende da aquisição do software.

Solução e interpretação

Adquirir o software e contratar o treinamento: (y₁, y₂) = (1, 1). O gasto é R$ 3 mil e o benefício total estimado é R$ 7 mil.

O que mudou? Uma combinação pode caber no orçamento e ainda ser inviável por uma condição lógica. A modelagem binária precisa representar tanto os limites numéricos quanto as relações entre decisões. Nestes exemplos pequenos, a enumeração completa comprova o ótimo; em modelos maiores, usamos métodos como Branch and Bound.

Os dois exemplos foram elaborados para este capítulo. A seguir, a mesma abordagem é ampliada para três projetos.

Exemplo simples com três variáveis: seleção de projetos

Uma organização dispõe de R$ 5 mil para investir em três projetos independentes. Cada projeto pode ser executado uma única vez, integralmente, ou não ser escolhido. Os benefícios estimados são aditivos e não há dependências entre os projetos.

ProjetoInvestimento (R$ mil)Benefício (R$ mil)
A47
B35
C24

1. Definição das três variáveis

Use y₁, y₂ e y₃ para os projetos A, B e C, respectivamente: yⱼ = 1 se o projeto for selecionado e yⱼ = 0 caso contrário.

Maximizar B = 7y₁ + 5y₂ + 4y₃ Sujeito a: 4y₁ + 3y₂ + 2y₃ ≤ 5 (orçamento em R$ mil) y₁, y₂, y₃ ∈ {0, 1}

2. Examinar as oito combinações

Com três variáveis binárias, há apenas 2³ = 8 possibilidades. Podemos conferir todas elas diretamente.

(y₁, y₂, y₃)InvestimentoBenefícioSituação
(0, 0, 0)00Viável
(1, 0, 0)47Viável
(0, 1, 0)35Viável
(0, 0, 1)24Viável
(1, 1, 0)712Inviável
(1, 0, 1)611Inviável
(0, 1, 1)59Viável e ótima
(1, 1, 1)916Inviável

3. Interpretar a solução

A melhor combinação viável é (0; 1; 1): executar os projetos B e C. O investimento total é R$ 5 mil e o benefício máximo é R$ 9 mil. Embora A tenha o maior benefício individual, a combinação B + C apresenta resultado melhor dentro do orçamento.

No Excel Solver: coloque as três decisões em células variáveis, maximize a soma dos benefícios ponderados, limite a soma dos investimentos a 5 e defina as decisões como binárias. A enumeração acima permite conferir o resultado do programa.

Exemplo elaborado para este capítulo, com valores didáticos. A seguir, o caso California amplia a mesma lógica para quatro decisões e acrescenta dependências e exclusão entre alternativas.

California Manufacturing Company

No caso didático de Hillier e Lieberman, a empresa considera construir fábricas e depósitos em Los Angeles e San Francisco. Deseja maximizar o valor presente líquido (VPL) dos investimentos, respeitando um orçamento de US$ 10 milhões. As fábricas podem ser construídas nas duas cidades, mas haverá no máximo um depósito; cada depósito exige uma fábrica na mesma cidade.

VariávelDecisão se xⱼ = 1VPL (US$ milhões)Capital (US$ milhões)
x₁Fábrica em Los Angeles96
x₂Fábrica em San Francisco53
x₃Depósito em Los Angeles65
x₄Depósito em San Francisco42

Todas as variáveis são binárias: xⱼ = 0 indica não realizar o investimento. Os valores abaixo seguem o caso discutido no texto-base da conversa.

Maximizar Z = 9x₁ + 5x₂ + 6x₃ + 4x₄ Sujeito a: 6x₁ + 3x₂ + 5x₃ + 2x₄ ≤ 10 (orçamento) x₃ ≤ x₁ (depósito LA exige fábrica LA) x₄ ≤ x₂ (depósito SF exige fábrica SF) x₃ + x₄ ≤ 1 (no máximo um depósito) x₁, x₂, x₃, x₄ ∈ {0, 1}

Interpretação das dependências

Se x₁ = 0, então x₃ = 0; se x₂ = 0, então x₄ = 0. Uma fábrica pode existir sem depósito. A desigualdade x₃ + x₄ ≤ 1 permite não construir depósito algum; usar igualdade mudaria o enunciado.

Resolução por enumeração

Quatro variáveis binárias geram 2⁴ = 16 combinações. Aplicando as dependências, a exclusão entre depósitos e o orçamento, restam as cinco alternativas viáveis abaixo. Para um modelo pequeno, a enumeração completa comprova o ótimo.

(x₁, x₂, x₃, x₄)CapitalVPLDecisão
(0, 0, 0, 0)00Nenhuma instalação
(1, 0, 0, 0)69Fábrica LA
(0, 1, 0, 0)35Fábrica SF
(0, 1, 0, 1)59Fábrica e depósito SF
(1, 1, 0, 0)914Duas fábricas — ótima

A fábrica com depósito em Los Angeles custaria 11 e viola o orçamento; as duas fábricas com depósito em San Francisco também custariam 11. As duas fábricas com depósito em Los Angeles custariam 14. As demais combinações violam dependências ou a condição de no máximo um depósito.

x* = (1, 1, 0, 0) Capital utilizado = US$ 9 milhões Folga orçamentária = US$ 1 milhão VPL máximo = US$ 14 milhões
Interpretação gerencial: construir as duas fábricas, sem depósitos. O orçamento não precisa ser totalmente utilizado. O modelo maximiza VPL, não gasto nem quantidade de projetos.

Aplicações e interpretação

Investimentos

Selecionar projetos com orçamento limitado; usar variáveis binárias e restrições de dependência.

Localização e distribuição

Decidir quais instalações abrir e quanto transportar; combinar custos fixos, capacidades e demandas.

Escalas e alocação

Designar pessoas a turnos ou tarefas; respeitar cobertura, disponibilidade e limites de jornada.

Transportes e aviação

Selecionar rotas, alocar aeronaves e representar quantidades indivisíveis de veículos.

Essas aplicações retomam a mesma disciplina de modelagem: definir unidades, explicitar hipóteses e validar restrições. Uma resposta computacional só é útil se o modelo representar corretamente as decisões reais.

A sensibilidade de um modelo inteiro requer cuidado: pequenas alterações nos dados podem mudar discretamente as escolhas. Não se deve aplicar automaticamente ao modelo inteiro a interpretação dos preços-sombra da relaxação. Compare cenários resolvendo novamente o modelo.

Prática orientada: Excel Solver

Monte primeiro o exemplo de produção em uma planilha. Use as fórmulas abaixo no Excel em português; em outras configurações, os nomes e separadores podem mudar.

Célula / intervaloConteúdo
B2:C2Quantidades x₁ e x₂; valores iniciais 0
B3:C3Lucros unitários: 5 e 4
D3=SOMARPRODUTO(B2:C2;B3:C3)
B5:C5 / E5Consumos 2 e 1 / limite 7
B6:C6 / E6Consumos 1 e 2 / limite 7
D5=SOMARPRODUTO($B$2:$C$2;B5:C5)
D6=SOMARPRODUTO($B$2:$C$2;B6:C6)
Configuração

Resolver e conferir

  1. Ative o suplemento Solver, se necessário, e abra Dados → Solver.
  2. Defina D3 como objetivo a maximizar e B2:C2 como células variáveis.
  3. Acrescente D5:D6 ≤ E5:E6 e B2:C2 ≥ 0.
  4. Resolva primeiro sem integralidade, usando Simplex LP. Espere x₁ = x₂ = 7/3 e Z = 21.
  5. Adicione a restrição de tipo inteiro (int) a B2:C2. Mantenha Simplex LP como método para o modelo linear; o Solver trata a integralidade com busca apropriada.
  6. Confira se a opção de ignorar restrições inteiras está desmarcada. Para buscar a comprovação do ótimo neste exercício pequeno, use tolerância de otimalidade inteira de 0%, quando disponível.
  7. Resolva novamente. Confira (3; 1), lucro 19, consumos (7; 5) e o status informado pelo Solver.

Resolver o caso binário

Em outra aba, use B2:E2 para x₁,…,x₄; B3:E3 para os VPLs (9; 5; 6; 4); B4:E4 para os capitais (6; 3; 5; 2). Em F3 calcule =SOMARPRODUTO(B2:E2;B3:E3), e em F4 =SOMARPRODUTO(B2:E2;B4:E4).

Maximize F3 alterando B2:E2. Adicione F4 ≤ 10, D2 ≤ B2, E2 ≤ C2, e uma célula auxiliar F5 = D2+E2 com F5 ≤ 1. Defina B2:E2 como binárias (bin). O resultado esperado é (1; 1; 0; 0), com VPL 14.

Atividade de encerramento

  1. Compare relaxação, arredondamento e solução inteira no problema de produção.
  2. Refaça o caso California com orçamento 11. Qual investimento passa a ser possível?
  3. Explique por que trocar “no máximo um depósito” por “exatamente um” altera o modelo.
  4. Entregue variáveis, modelo completo, configuração do Solver, solução e interpretação gerencial.
Conferência: com orçamento 11, a melhor escolha é (1; 1; 0; 1), capital 11 e VPL 18. Para o orçamento original 10, exigir exatamente um depósito deixa como única solução viável a fábrica com depósito em San Francisco, VPL 9.

Se a execução terminar por limite de tempo ou tolerância, diferencie “melhor solução encontrada” de “ótimo comprovado”. Consulte o guia do Solver da Microsoft.

Referências e fechamento

O capítulo integra a modelagem de Hillier e Lieberman e Taha com a apresentação de métodos de Trick e os materiais do MIT. O exemplo de produção foi desenvolvido didaticamente; o caso California é uma adaptação do exemplo desses autores, com os coeficientes do texto-base. A numeração dos capítulos dos livros varia conforme a edição.

Livro / modelagem e aplicações

Hillier e Lieberman

HILLIER, Frederick S.; LIEBERMAN, Gerald J. Introdução à Pesquisa Operacional. McGraw-Hill / AMGH. Capítulo de Programação Inteira, especialmente decisões binárias e o caso California Manufacturing Company. Na edição digitalizada discutida em aula: capítulo 11, seção 11.1.

Livro / formulação e solução

Hamdy A. Taha

TAHA, Hamdy A. Operations Research: An Introduction. Pearson. Capítulos de modelagem e programação inteira. Consulte a edição adotada na disciplina.

Tutorial / acesso aberto

Michael A. Trick

TRICK, Michael A. A Tutorial on Integer Programming. Carnegie Mellon University, material de curso dos anos 1990. Seções de modelagem, relação com PL e Branch and Bound.

Aulas / acesso aberto

MIT OpenCourseWare

ORLIN, James; NASRABADI, Ebrahim. 15.053 — Optimization Methods in Management Science. Primavera de 2013. Aulas 10–14: formulação inteira, Branch and Bound e cortes.

Encerramento da disciplina

Modelar é traduzir uma decisão em variáveis, objetivos, restrições e domínios coerentes. Resolver é buscar a melhor alternativa admissível e compreender o alcance da comprovação. Interpretar é transformar a resposta matemática em uma decisão justificável. A Programação Inteira amplia esse percurso para unidades indivisíveis e escolhas do tipo sim ou não.

← capítulo anteriorCap. 5