![]() |
|
||||
Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: GNU Octave ::: Desafios e Lista de Exercícios Resolvidos ::: Pesquisa Operacional |
Exercício Resolvido de Octave - Programação Linear - Um fazendeiro decidiu misturar duas rações, a Ração X e a Ração Y. Cada porção de ração dada aos animais - Lista de Exercícios Resolvidos de GNU OctaveQuantidade de visualizações: 488 vezes |
|
Pergunta/Tarefa: Este exercício de Octave aborda o uso da função glpk() para resolver um problema de Pesquisa Operacional usando Programação Linear. 1) Um fazendeiro decidiu misturar duas rações, a Ração X e a Ração Y. Cada porção de ração dada aos animais exige 60g de proteína e 30g de gordura. A Ração X possui 15g de proteína e 10g de gordura, e custa R$ 80,00 a unidade. A Ração Y apresenta 20g de proteína e 5g de gordura e custa R$ 50,00 a unidade. Quanto de cada ração deve ser usada para minimizar os custos do fazendeiro? Sua saída deverá ser parecida com: A solução para o problema de minimização é: x = 2.40 y = 1.20 O custo mínimo é: 252.00 Antes de passarmos ao código Octave, vamos fazer a modelagem matemática do problema. O primeiro passo é identificar as variáveis. Assim, vamos chamar de x o número de unidades da Ração X e de y o número de unidades da Ração Y. Veja: x = Número de unidades da Ração X y = Número de unidades da Ração Y E então temos a função custo: custo = 80x + 50y A primeira restrição diz respeito à quantidade de proteína em cada porção de ração. Sabendo que a Ração X apresenta 15g de proteína e a Ração Y apresenta 20g de proteína nós temos: R1: 15x + 20y >= 60 (proteína) A segunda restrição diz respeito à quantidade de gordura em cada porção de ração. Sabendo que a Ração X apresenta 10g de gordura e a Ração Y apresenta 5g de gordura nós temos: R2: 10x + 5y >= 30 (gordura) As restrições R3 e R4 dizem respeito à não negatividade das variáveis de decisão: R3: x >= 0 R4: y >= 0 Veja agora o código Octave completo (pesquisa_operacional.m): ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
# vamos começar definindo a matriz que representa a função de
# minimização
c = [80.0, 50.0]';
# agora a matriz de restrições
A = [15, 20; 10, 5];
b = [60, 30]';
# as restrições de não negatividade e o limite superior
lb = [0, 0]';
ub = [];
# definimos as restrições como limites inferiores
ctype = "LL";
# indicamos que vamos usar variáveis contínuas (não inteiros)
vartype = "CC";
# vamos usar minimização, por isso definimos o valor 1. Se fosse
# maximização o valor seria -1
s = 1;
# definimos os parâmetros adicionais
param.msglev = 1;
param.itlim = 100;
# e chamamos a função glpk()
[xmin, fmin, status, extra] = glpk(c, A, b, lb, ub, ctype, vartype, s, param);
# mostramos a solução para o problema de minimização
printf("A solução para o problema de minimização é:\n\n");
printf("x = %.2f\n", xmin(1));
printf("y = %.2f\n", xmin(2));
# para finalizar vamos mostrar o custo mínimo
printf("\nO custo mínimo é: %.2f\n\n", fmin);
Ao executar o código você perceberá que, para minimizar os custos do fazendeiro, deverão ser usados na mistura 2,4 unidades da Ração X e 1,2 unidades da Raça Y, a um custo mínimo de R$ 252,00. |
|
|
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de GNU Octave |
Veja mais Dicas e truques de GNU Octave |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






