Está en la página 1de 19

FACULTAD DE CIENCIAS DE LA INGENIERÍA Y APLICADAS CARRERA DE

ELECTRICIDAD
SISTEMAS DE INGENIERÍA

Nombre: Geovanny Barahona Sexto “A”

Ejercicio 01.- Producción


- Código en Matlab
%Problema de Optimizacion
%Ejercicio N°1 Produccion
%Maximizar Z= x+y
% sujeto a s.a:
%4x+3y<=14
%2x+3y<=12
%x,y>=0

clear;
clc;
% Funcion objetivo:
f = -[1; 1];
%Definir restricciones lineales
A = [4 3;2 3]; b = [14; 12];
Aeq = []; Beq = [];
% Definir limites maximos y minimos
LB = [0 0]; UB = [];
% optmizar
[Variables,z] = linprog(f,A,b,Aeq,Beq,LB,UB)

- Código en Xpress WorkBench


!@encoding CP1252
model Ejemplo_de_Produccion
uses "mmxprs"; !Optimizador

!Incluir variables
declarations
x,y: mpvar
end-declarations
!Funcion Objetivo
FO:=x+y
!Restricciones
4*x+3*y<=14
2*x+3*y<=12
x >= 0
y >= 0
!Optimizar
maximise(FO)
!Presentar los resultados

writeln("Resultados")
!...
writeln("Funcion Objetivo:", getobjval)
writeln("x:", x.sol)
writeln("y:", y.sol)

end-model
- Resultados

- Análisis
Dentro del primer ejercicio se evidencia que existe congruencia en ambos programas ya que
la solución de ambos coincide, sin embargo se presenta un particular en la respuesta
perteneciente a la función objetivo en el programa matlab puesto que el valor de z es negativo
por las condiciones en la cual funciona el optimizador al buscar el punto máximo.
Ejercicio 02.- Asignación de tareas
- Código en Matlab
%Ejercicio Asignacion_de _Tareas
% min z=68,3(M1+N1+P1+Q1)+69,5(M2+N2+P2+Q2)+
71(M3+N3+P3+Q3)+71,2(M4+N4+P4+Q4)
% s.a: M1+N1+P1+Q1<=220; M2+N2+P2+Q2<=300; M3+N3+P3+Q3<=
245;M4+N4+P4+Q4<=190
% 1/52*M1+1/57*M2+1/51*M3+1/56*M4=1;
1/212*N1+1/218*N2+1/201*N3+1/223*N4=1;
% 1/25*P1+1/23*P2+1/26*P3+1/21*P4=1; 1/60*Q1+1/57*Q2+1/54*Q3+1/55*Q4=1
% M1+N1+P1+Q1>=0; M2+N2+P2+Q2>=0; M3+N3+P3+Q3>=0; M4+N4+P4+Q4>=0
clear;
clc;
% Funcion objetivo
f=[68.3; 68.3; 68.3; 68.3;69.5;69.5;69.5;69.5;71;71;71;71;71.2;71.2;71.2;71.2]
%Definir restrinciones lineales:
A=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0;
0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0;
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1]
B=[220; 300; 245; 190];
Aeq=[1/52, 0, 0, 0, 1/57, 0, 0, 0, 1/51, 0, 0, 0, 1/56, 0, 0, 0;
0, 1/212, 0, 0, 0, 1/218, 0, 0, 0, 1/201, 0, 0, 0, 1/223, 0, 0;
0, 0, 1/25, 0, 0, 0, 1/230, 0, 0, 0, 1/260, 0, 0, 0, 1/21, 0;
0, 0, 0, 1/60, 0, 0, 0, 1/57, 0, 0, 0, 1/54, 0, 0, 0, 1/55]
Beq=[1;1;1;1]
%Definir limites maximos y minimos
LB= [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0];
UB=[];

[x, z]=linprog(f,A,B,Aeq,Beq,LB,UB)

- Código en Xpress WorkBench


!@encoding CP1252
model Ejemplo_de_Asignacion_de_tareas
uses "mmxprs"; !Optimizador

!Incluir variables
declarations
M1,M2,M3,M4,N1,N2,N3,N4,P1,P2,P3,P4,Q1,Q2,Q3,Q4: mpvar
end-declarations
!Funcion Objetivo
FO:=68.3*(M1+N1+P1+Q1)+69.5*(M2+N2+P2+Q2)+71*(M3+N3+P3+Q3)+71.2*(M4+N4
+P4+Q4)
!Restricciones
M1+N1+P1+Q1<=220
M2+N2+P2+Q2<=300
M3+N3+P3+Q3<=245
M4+N4+P4+Q4<=190
(1/52)*M1+(1/57)*M2+(1/51)*M3+(1/56)*M4=1
(1/212)*N1+(1/218)*N2+(1/201)*N3+(1/223)*N4=1
(1/25)*P1+(1/23)*P2+(1/26)*P3+(1/21)*P4=1
(1/60)*Q1+(1/57)*Q2+(1/54)*Q3+(1/55)*Q4=1

!Optimizar
minimize(FO)
!Presentar los resultados

writeln("Resultados")
!...
writeln("Funcion Objetivo:", getobjval)
writeln("M1:", M1.sol)
writeln("M2:", M2.sol)
writeln("M3:", M3.sol)
writeln("M4:", M4.sol)
writeln("N1:", N1.sol)
writeln("N2:", N2.sol)
writeln("N3:", N3.sol)
writeln("N4:", N4.sol)
writeln("P1:", P1.sol)
writeln("P2:", P2.sol)
writeln("P3:", P3.sol)
writeln("P4:", P4.sol)
writeln("Q1:", Q1.sol)
writeln("Q2:", Q2.sol)
writeln("Q3:", Q3.sol)
writeln("Q4:", Q4.sol)

end-model

- Resultados

- Análisis
Durante el desarrollo del segundo ejercicio se presentó ciertos inconvenientes en el software
Matlab, esto debido a que presenta menos interacción con el programador, el principal error
se encontraba en que la matriz perteneciente a las igualdades estaba incompleta, de igual
manera se asume que matlab brinda el valor de las variables en orden por lo tanto se presenta
valores similares en diferente orden.
Ejercicio 03.- Dieta
- Código en Matlab
%Problema de Optimizacion
%Min Z= x1+0.5x2+2x3+1.2x4+3x5
% sujeto a s.a:
%78.6x1+70.1x2+80.1x3+67.2x4+77x5>=74.2
%6.5x1+9.4x2+8.8x3+13.7x4+30.45x5>=14.7
%0.02x1+0.09x2+0.03x3+0.14x4+0.41x5>=0.14
%0.27x1+0.34x2+0.30x3+1.29x4+0.86x5>=0.55
%x1,x2,x3,x3,x4,x5,x6>=0

clear;
clc;
% Funcion objetivo:
f = [1; 0.5; 2; 1.2; 3;]
%Definir restricciones lineales
A = -[78.6 70.1 80.1 67.2 77; 6.5 9.4 8.8 13.7 30.45; 0.02 0.09 0.03 0.14 0.41; 0.27 0.34 0.30
1.29 0.86]
b = -[74.2; 14.7; 0.14; 0.55]
Aeq = []
Beq = []
% Definir limites maximos y minimos
LB = [0 0 0 0 0]; UB = [];
% optmizar
[x,z] = linprog(f,A,b,Aeq,Beq,LB,UB)

- Código en Xpress WorkBench


!@encoding CP1252
model Ejemplo_de_Dieta
uses "mmxprs"; !Optimizador

!Incluir variables
declarations
x1,x2,x3,x4,x5: mpvar
end-declarations
!Funcion Objetivo
FO:=x1+0.5*x2+2*x3+1.2*x4+3*x5
!Restricciones
78.6*x1+70.1*x2+80.1*x3+67.2*x4+77*x5>=74.2
6.50*x1+9.40*x2+8.8*x3+13.7*x4+30.4*x5>=14.7
0.002*x1+0.09*x2+0.03*x3+0.14*x4+0.41*x5>=0.14
0.27*x1+0.34*x2+0.30*x3+1.29*x4+0.86*x5>=0.55

x1 >= 0
x2 >= 0
x3 >= 0
x4 >= 0
x5 >= 0
!Optimizar
minimize(FO)
!Presentar los resultados

writeln("Resultados")
!...
writeln("Funcion Objetivo:", getobjval)
writeln("x1:", x1.sol)
writeln("x2:", x2.sol)
writeln("x3:", x3.sol)
writeln("x4:", x4.sol)
writeln("x5:", x5.sol)

end-model

- Resultados
- Análisis
En cuanto al desarrollo del ejercicio número 3 no se presentó inconvenientes, los valores
pertenecientes a cada variable del sistema matemático coinciden en ambos programas por lo
tanto la optimización de la dieta asegurando el mínimo coste es eficiente.
Ejercicio 04.- Transporte
- Código en Matlab
%Problema de Optimizacion
%Maximizar Z= 0.5x11+3x12+2x13+2x21+3x22+4x23+2x31+3x32+1.5x33
% sujeto a s.a:
%x11+x12+x13=2
%x21+x22+x23=3
%x31+x32+x33=4

%x11+x21+x31=5
%x12+x22+X32=2
%x13+x23+x33=2

clear;
clc;
% Funcion objetivo:
f = [0.5; 3; 2; 2; 3; 4; 2; 3; 1.5]
%Definir restricciones lineales
A = -[]
b = -[]
Aeq = -[1 1 1 0 0 0 0 0 0; 1 1 1 0 0 0 0 0 0; 1 1 1 0 0 0 0 0 0; 1 0 0 1 0 0 1 0 0 ;0 1 0 0 1 0 0 1
0; 0 0 1 0 0 1 0 0 1]
Beq = -[2; 3; 4; 5; 2; 2]
% Definir limites maximos y minimos
LB = []; UB = [];
% optmizar
[x,z] = linprog(f,A,b,Aeq,Beq,LB,UB)

- Código en Xpress WorkBench


!@encoding CP1252
model Ejemplo_de_Transporte
uses "mmxprs"; !Optimizador

!Incluir variables
declarations
x11,x12,x13,x21,x22,x23,x31,x32,x33: mpvar
end-declarations
!Funcion Objetivo
FO:=0.5*x11+3*x12+2*x13+2*x21+3*x22+4*x23+2*x31+3*x32+1.5*x33
!Restricciones
x11+x12+x13=2
x21+x22+x23=3
x31+x32+x33=4

x11+x21+x31=5
x12+x22+x32=2
x13+x23+x33=2

!Optimizar
minimize(FO)
!Presentar los resultados

writeln("Resultados")
!...
writeln("Funcion Objetivo:", getobjval)
writeln("x11:", x11.sol)
writeln("x12:", x12.sol)
writeln("x13:", x13.sol)
writeln("x21:", x21.sol)
writeln("x22:", x22.sol)
writeln("x23:", x23.sol)
writeln("x31:", x31.sol)
writeln("x32:", x32.sol)
writeln("x33:", x33.sol)
end-model

- Resultados

- Análisis

Durante el desarrollo del ejercicio número cuatro se presentó un inconveniente, a diferencia


de los ejercicios anteriormente planteados, este presenta condiciones de formulación
diferentes puesto que está sujeto a la relación entre el punto de origen y el destino, por lo
tanto existen diferentes combinaciones de caminos que permiten satisfacer la necesidad de
transporte, sin embargo dentro del programa Matlab se presenta un error referente a la
relación existente entre la matriz de igualdades Aeq y del número de elementos de f. Por otro
lado el software Xpress WorkBench resuelve y brinda una solución óptima para el sistema.
Ejercicio 05.- Empresa de Construcción
- Código en Matlab
%Problema de Optimizacion
%Ejercicio N°1 Produccion
%Maximizar Z= 100x1+90x2+120x3
% sujeto a s.a:
%0.2x1+0.25x2+0.225x3<=2000
%80x1+37.5x2+35x3<=200000
%0.001x1+0.00125x2+0.0015x3<=8
%x1,x2,x3>=0

clear;
clc;
% Funcion objetivo:
f = -[100; 90; 120];
%Definir restricciones lineales
A = [0.2 0.25 0.225 ;80 37.5 35 ;0.001 0.00125 0.0015];
b = [2000; 200000; 8];
Aeq = []; Beq = [];
% Definir limites maximos y minimos
LB = [0 0 0]; UB = [];
% optmizar
[Variables,z] = linprog(f,A,b,Aeq,Beq,LB,UB)

- Código en Xpress WorkBench


!@encoding CP1252
model Ejemplo_de_Empresa_de_Construccion
uses "mmxprs"; !Optimizador

!Incluir variables
declarations
x1,x2,x3: mpvar
end-declarations
!Funcion Objetivo
FO:=100*x1+90*x2+120*x3
!Restricciones
0.2*x1+0.25*x2+0.225*x3<=2000
80*x1+37.5*x2+35*x3<=200000
0.001*x1+0.00125*x2+0.0015*x3<=8

x1 >= 0
x2 >= 0
x3 >= 0
!Optimizar
maximise(FO)
!Presentar los resultados

writeln("Resultados")
!...
writeln("Funcion Objetivo:", getobjval)
writeln("x1:", x1.sol)
writeln("x2:", x2.sol)
writeln("x3:", x3.sol)

end-model

- Resultados
- Análisis
En cuanto la resolución del ejercicio número 5 no se presento inconveniente alguno, cabe
destacar la necesidad de transformación de unidades para realizar la relación respectiva que
permitiría plantear las restricciones, de igual manera, resaltar que el valor de z en el software
matlab es negativo por las condiciones las que se desarrolla la programación, por otra parte el
software Xpress WorkBench ha brindado la respuesta óptima de manera eficiente.

También podría gustarte