Abrimos este espacio para propuestas de solución.
Buenas! Adjunto mi propuesta para el 2.4. Saludos!
Dejo el 2.4 usando otra libreria (Linprog)
Dejo aca el codigo en Python del 2.4,
No estoy seguro de que este bien, si encuentran algun error avisen!
Dejo tambien el resultado que me dio
status:1,Optimal objective:45000.0003 A:0.0 B:16.666667 B1:13.333333 B2:3.3333333 C:11.111111 Balance_B:-7.000000010748408e-07 Maq_1:-1.9999999949504854e-06 Maq_2:-8.000000093488779e-07 Materia_Prima_M:4.000000011217253e-07 Materia_Prima_N:-5.9999994 Compromiso_de_Venta:6.666667
Ariel y Brian,
muy buenos los aportes. Sin embargo me dan resultados distintos... me parece que uno esta bien y el otro no.
Un detalle: así como el script de R se graba en .R el script de python se graba .py
"2.4.py"
Saludos.
Tenia un error en la restriccion de la maquina 1 y en la de la MP ¨M¨, vuelvo a dejar el codigo pero en py y el resultado
status:1,Optimal objective:55000.0011 A:0.0 B:16.666667 B1:13.333333 B2:3.3333333 C:16.666667 Balance_B:-7.000000010748408e-07 Maq_1:-1.9999999949504854e-06 Maq_2:1.1999999998124622e-06 Materia_Prima_M:4.000000011217253e-07 Materia_Prima_N:-5.9999994 Compromiso_de_Venta:6.666667
Les dejo cómo resolví el 2.6. Saludos!
Obtuve el mismo resultado. Dejo mi formulación en LINDO
Objetivo : minimizar el costo total.
MIN CT+CF
ST
!Fi : toneladas de producción en la fábrica i ; i= 1,2,3,4
!Aj : toneladas de productos recibidos en el almacén j ; j = A,B,C,D
!Tij : cantidad de toneladas transportada de la fábrica i, al almacén j.
!Balance de fábricas
-F1+T1A+T1B+T1C+T1D=0
-F2+T2A+T2B+T2C+T2D=0
-F3+T3A+T3B+T3C+T3D=0
-F4+T4A+T4B+T4C+T4D=0
!Capacidad de producción de las fábricas
F1<140
F2<260
F3<360
F4<220
!Balance de almacenes
-AA+T1A+T2A+T3A+T4A=0
-AB+T1B+T2B+T3B+T4B=0
-AC+T1C+T2C+T3C+T4C=0
-AD+T1D+T2D+T3D+T4D=0
!Requerimientos de almacenes
AA=180
AB=280
AC=150
AD=200
!Costo de fabricación
-CF + 60F1 + 72F2 + 48F3 + 60 F4= 0
!Costo de transporte
-CT + 28T1A+18T2A+42T3A+36T4A+40T1B+28T2B+54T3B+48T4B+36T1C+24T2C+52T3C+40T4C+38T1D+30T2D+54T3D+46T4D=0
END
Adjunto mi propuesta.
Algunas cosas que me costaron es ver como programar en R la variable totalizadora B = B1 + B2
AVISO: me falto una restricción!
#2.4
#Datos del enunciado
#Taller de pullovers elabora modelos A, B y C
#2 máquinas = 8 turnos de 8 horas de Lun a Vie
#M = MP apara A y C / N = MP para B
#Restricción de MP = M <=20 Kg por semana / N <= 36 kg por semana
#Compromiso entrega de 10 pullovers de B por semana
#Buscamos maximizar el beneficio
#Defino el funcional
# [Max] z=1000*A + 1500*BI + 1500*BII+1800*C
#Donde: A=cantidad de pullovers A, B=cantidad de pullovers B y C=cantidad de pullovers C
z<-c(1000,1500,1500,1800)
#B=BI+BII
#Defino las restricciones
#5*A+6*BI<=80
#4*BII+4*C<=80
#1,6*A+1,2*C<=20
#1,8*BI+1,8*BII<=36
A<-matrix(c(5,6,0,0,0,0,4,4,1.6,0,0,1.2,0,1.8,1.8,0),ncol=4)
A
b<-c(80,80,20,36)
b
dir<-c("<=","<=","<=","<=")
dir
library(linprog)
library(lpSolve)
lp(direction="max",objective.in=z,const.mat=A,const.dir=dir,const.rhs=b,int.vec=c(1,2,3,4,5),all.int=T)
lp(direction="max",objective.in=z,const.mat=A,const.dir=dir,const.rhs=b,int.vec=c(1,2,3,4,5),all.int=T)$solution
#Solucion = Success: the objective function is 70800
#[1] 6 0 30 11
Comparto la nueva solución, considerando la restricción en B
#2.4
#Datos del enunciado
#Taller de pullovers elabora modelos A, B y C
#2 máquinas = 8 turnos de 8 horas de Lun a Vie
#M = MP apara A y C / N = MP para B
#Restricción de MP = M <=20 Kg por semana / N <= 36 kg por semana
#Compromiso entrega de 10 pullovers de B por semana
#Buscamos maximizar el beneficio
#Defino el funcional
# [Max] z=1000*A + 1500*BI + 1500*BII+1800*C
#Donde: A=cantidad de pullovers A, B=cantidad de pullovers B y C=cantidad de pullovers C
z<-c(1000,1500,1500,1800)
#B=BI+BII
#Defino las restricciones
#5*A+6*BI<=80
#4*BII+4*C<=80
#1,6*A+1,2*C<=20
#1,8*BI+1,8*BII<=36
#BI+BII>=10
A<-matrix(c(5,0,1.6,0,0,6,0,0,1.8,1,0,4,0,1.8,1,0,4,1.2,0,0),ncol=4)
A
b<-c(80,80,20,36,10)
b
dir<-c("<=","<=","<=","<=",">=")
dir
library(linprog)
library(lpSolve)
lp("max",z,A,dir,b)
solution <- lp("max",z,A,dir,b)$solution
print(solution)
Buenas!
Adjunto mi resolución del problema 2.6 en R
no pude poner por separado el costo de producir de cada fabrica asi que lo agregue al costo del transporte
Buenísimos los aportes de todos!
Acuerdensé que esta instancia no es una entrega, sino más bien una construcción grupal de una solución a un problema. Los post en este foro, de ahora en adelante, deberían entonces 'dialogar' con los post que ya están subidos.
Excelente la participación. Saludos.
Hola, agrego mi propuesta del Ejercicio 1.7 de la guía en R. Espero que sirva, saludos!
Muy bueno, gracias.