Академический Документы
Профессиональный Документы
Культура Документы
En este proyecto se deber implementar un programa que resuelva mediante el mtodo grfico
el problema de optimizacin con restricciones en el caso bidimensional:
Maximizar z = c x con respecto a las variables de decisin x , sujeto a: A x = b , x 0
Dnde:
x
x = 1,
x2
a11 a12
b1
a
b
a22
2
A = 21
, c = [ c1 c2 ] b =
... ...
...
am1 am 2
bm
Programa
end
display('Se ha alcanzado el numero mximo de posibles soluciones (elija
uno)')
display('Se recomienda la que coincida con la sol factible mostrada al
evaluar')
end
El anterior cdigo requiere de unas funciones externas las cuales llama dentro de l, que
son las siguientes:
function puntos=corner1(A,b)
%Puntos extremos
[m,n]=size(A);
puntos=[];
if n>=m
combin=nchoosek(n,m); %Coeficientes binomiales
v=nchoosek(1:n,m);
for k=1:combin
y=zeros(n,1);
x=inv(A(:,v(k,:)))*b;
if all(x>=0 & (x~=inf & x~=-inf))
y(v(k,:))=x;
puntos=[puntos y];
end
end
else
error('Nmero de ecuaciones es > nmero de variables');
end
puntos
puntos=deleteCol1(puntos);
end
y
function puntos=deleteCol1(puntos)
%Borra columnas repetidas
[nn,L]=size(puntos);
v=[];
for i=1:L-1
for j=i+1:L
x=puntos(:,i);
y=puntos(:,j);
if all(x==y)
v=[v,j];
end
end
end
puntos(:,v)=[];
end
Para el problema ejemplo visto en clase (gasera), cuyos datos de entrada son los
siguientes:
>> A=[7 11;10 8;1 0;0 1]
A =
7
11
10
>> b=[77;80;9;6]
b =
77
80
9
6
>> c=[150 175]
c =
150
175
>> direccion=['<=';'<=';'<=';'<=']
direccion =
<=
<=
<=
<=
EL problema se resolvi mediante la localizacin los vrtices del polgono dando as las
coordenadas del mismo y mostrndolo de manera grfica para que el usuario determine
cul es la regin factible del mximo incremento de Z, aun as en el programa
implementamos el valor de z de mximo crecimiento, localizado en uno de los puntos
anteriormente descritos.
Segundo problema:
Una fbrica de bibliotecas metlicas y combinadas con madera, utiliza 3 procesos en su
produccin: cerrajera, carpintera y pintura, cada proceso requiere 72, 50 y 40 horas
respectivamente, producir una biblioteca metlica requiere 3 horas de cerrajera, 1 hora de
carpintera y 1.5 horas de pintura, la biblioteca combinada de madera requiere de 1 hora
de cerrajera, 2 horas de carpintera y una de pintura. Si la utilidad que produce una
biblioteca metlica es de $50 y una combinada de madera es de $80.
Cuntas bibliotecas debe producir la fbrica para generar la mxima ganancia?
Proceso
Cerrajera
Carpintera
Pintura
Utilidad
(x1) Metlica
3
1
1.5
$50
(x2) Combinada
1
2
1
$80
Funcin Objetivo
Z=50x1 + 80x2
Restricciones
3x1 + x2 72
x1 + 2x2 50
1.5 x1 + x2 40
Adems x1 0 y x2 0
Para Z le damos un valor cualquiera ejemplo 3000
3000 = 50x1 + 80x2
Implementamos los datos de entrada:
>> A
A =
3.0000
1.0000
Horas disponibles
72
50
40
1.0000
2.0000
1.5000
1.0000
>> b
b =
72
50
40
>> c
c =
50
80
Conclusiones
En base a lo visto en el saln, el cdigo utilizado en este proyecto es diferente al
pseudocdigo proporcionado debido a que la diferencia es que el utilizado en el saln de
clases muestra la solucin numricamente y este implementado lo hace de manera grfica,
como se describi en la descripcin del proyecto. Cabe mencionar que fue armado
mediante bsquedas y ayudas en internet
y mejorando las mismas, as como un cdigo base al cual le hicimos adaptaciones para que
se apegara a los requisitos del proyecto y lo cual resulto satisfactoriamente.
Comentarios:
Profesor el pseudocdigo visto en clases no pudimos adaptarlo a Matlab por eso nos
vimos en la necesidad de hacerlo de manera diferente para cumplir con las expectativas
del proyecto, de igual forma es la forma en que se pide al inicio del enunciado en el
proyecto 8 se deber implementar un programa que resuelva mediante el mtodo grfico .