@@alexagreingenieria Gracias. Sigue posteando video de utilidad
@marcoantoniogonzalezmorale5228Ай бұрын
Muy buena didáctica y video. Felicidades.
@ojitosverdez2 ай бұрын
¡¡Me haz salvado!! Gracias usuario de yt que sube un tutorial que ocupo en mi vida
@Issac_Elias2 ай бұрын
Gracias, muchas, muchas, muchas gracias <3 tu video es la respuesta a mi oración
@burgospechjesusemiliano87752 ай бұрын
Hermano me salvaste la vida, tantos videos de hacer matrices y todo eso y doy con el tuyo. Dios te bendiga hermano mas videos de este tema porfavor mas mas variables xd
@benjuarez83972 ай бұрын
Por que no agregaste variables de desviación a la restricción del presupuesto?
@alexagreingenieria2 ай бұрын
Por ser una restricción dura. Es decir, 14,000 es el presupuesto máximo a invertir y por lo tanto no vamos a aceptar resultados en donde el presupuesto sea mayor, dicha restricción no es flexible como las demás. Saludos
@luisw63402 ай бұрын
saludos ¿tendrá el archivo de excel?
@alexagreingenieria2 ай бұрын
@@luisw6340 Hola, sí lo tengo. Dame tu correo para compartirlo.
@azaleapedrero69463 ай бұрын
Profe, una duda por que agregarle esas variables M y binaria t, que lo hace necesario? por que no resolverlo sin ellas?
@javychojd7253 ай бұрын
Ayudaaa, pongo tal cual la misma línea de comandos pero como respuesta me sale 3.7000000000e+02
@alexagreingenieria3 ай бұрын
Hola, esa expresión es equivalente a decir 370. Matlab a veces genera resultados en notación científica, por lo tanto solo debes correr el punto dos posiciones y llegas al entero 370. Saludos.
@ayelenkia26464 ай бұрын
A2 T3, 225? no coincide el gráfico con la capacidad, me confundí
@kiwii97664 ай бұрын
si uno de los numeros de la columna pivote ya es 0, se mantienen los valores de toda la fila es decir, no se calcula nada?
@alexagreingenieria4 ай бұрын
Hola, es correcto. Debes mantener los mismos valores y tratar los demás números de la columna pivote.
@robertalvarezrios1535 ай бұрын
por que la función objetivo solo es suma
@facundoallione27535 ай бұрын
Gracias! Gracias! Gracias!
@juanspechini20465 ай бұрын
Eexcelente explicación!!. Cómo podríamos graficar la función objetivo, que debe pasar por el punto oótimo?. Deberíamos agregarla en el código Python.
@rodrigogabrielotero46195 ай бұрын
Nosotros tenemos una sola bacteria, litonotus, cómo podemos hacer para tener todas las bacterias? Tratamos efluentes industrial de alimentación
@rodrigogabrielotero46195 ай бұрын
Antes teníamos varias pero no sé por qué razón se fueron desapareciendo
@alexagreingenieria5 ай бұрын
Hola Rodrigo, puedes enriquecer el reactor con un poco de urea, si algunos microorganismos han desaparecido puede ser posiblemente por descargas de sustancias de limpieza con alta concentración o biocidas. Te recomiendo revisar tu proceso para descartar posibles sustancias que puedan estar afectando la flora de tu sistema. Saludos
Necesito hacer una cartelera para auxiliares en una residencia. Tienen que trabajar 1754 horas anuales, trabajan a turnos de M, T y noche los 7 días a la semana, pero descansan 1.5 dias a la semana cada trabajador. Tienen un mes natural de vacaciones y 4 días de asuntos propios. Necesito con estas premisas hacer una hoja de Excel, es decir una cartelera para cada mes del año. Si alguien me puede ayudar lo agradecería... 😊
@MrArroba2118 ай бұрын
Una muy completa aplicación de la vida real de la simulación Montecarlo.
@MrArroba2118 ай бұрын
Alex, ví primero el vídeo del algoritmo de Palmer. Dependiendo de la complejidad del proceso sería mas completo el algoritmo de Palmer vs Johnson?
@alexagreingenieria8 ай бұрын
Ambas herramientas son heurísticas que pueden emplearse según la necesidad, sin embargo, Palmer ofrece una ecuación la cual puedes programar y automatizar un proceso de varias etapas, situación que con Jhonson podría ser un poco más complejo. Saludos
@MrArroba2118 ай бұрын
Excelente lección, en lo personal no conocía el algortimo de Palmer.
@darwingustavojaquepuca88008 ай бұрын
Felicitaciones... muy buen video...... se podría comprobar la solución de una matriz de 9x9 por el método de Gauss -Jordán ? en el programa google Colab
@juancarlosarburua86038 ай бұрын
Probe un caso con 20 objetos comparando con un programa que hice y que resuelve el problema y encontró una mejor solución que la que me da excel. Es decir no me dio la optima excel.
@alexagreingenieria8 ай бұрын
Hola Juan, es cierto, el solver de Excel es muy genérico y no siempre garantiza el mejor resultado en problemas más complejos; es muy útil para enseñar estas heurísticas en ejercicios sencillos. Tengo videos en donde se comparan los resultados de Excel con los solver de Matlab y AMPL. Te invito a darles un vistazo para que veas la diferencia de los resultados.
@nicolayandresninosuarez76909 ай бұрын
Hola, muy buen video, pero me surge una duda... cuando tengo una variable de restricción, por ejemplo, donde x <= 40, ¿cómo se puede graficar?
@alexagreingenieria9 ай бұрын
Hola, esa restricción representa una línea recta horizontal con intercepción en 40 y podría graficarse agregando la siguiente línea: plt.plot(x1,x1,label='x1<=40') Ten en cuenta que antes deben declararse las variables adecuadas. Saludos.
@hmbush36889 ай бұрын
el beneficio 1 es más importante ? y 20 menos importante ?
@alexagreingenieria8 ай бұрын
Hola, el ejercicio esta enfocado en explicar un poco la heurística de la mochila y claro es muy ilógico no llevar alimentos al campamento aunque tenga considerado ir a cazar 😅 Saludos.
@eduardosepulveda777410 ай бұрын
Excelente video, muchas gracias. me gustaría saber si existe la forma de calcular los tiempos de detención entre procesos.
@germantoledo152510 ай бұрын
Muy didáctico. Felicitaciones
@victorcarrillo7477 Жыл бұрын
Gracias profe, muy bueno el ejercicio
@AlexaSerrano-r2d Жыл бұрын
Muchas gracias por la explicación!
@julietaortega-rj8id Жыл бұрын
Excelente explicación!!!
@sjmagister Жыл бұрын
Muy Bueno !!!!
@sebastianandres2926 Жыл бұрын
hago un copy paste de tu código en la plataforma y siempre me aparece error, me registro y coloco mi clave pero nada
@sebastianandres2926 Жыл бұрын
Además intento hacerlo desde la aplicación de AMPL en archivos separados y si bien me dan los mismos resultados en recursos me dice que me queda 2.5 de MET y 5 de ELC, cuanto al final con 125 CTV y 25 PRL te deberían quedar 0 en ambas
@alexagreingenieria Жыл бұрын
Hola @@sebastianandres2926 acabo de ejecutar el código y tienes razón, sale un error pero al parecer es por que actualizaron la línea de código para la licencia de AMPL en Python. Intenta lo siguiente (a mí me funcionó). En cajas separadas de código de Colab escribe lo siguiente:
@alexagreingenieria Жыл бұрын
# The only 3 lines you need to install and use AMPL with any solver on Colab %pip install -q amplpy from amplpy import AMPL, ampl_notebook ampl = ampl_notebook( modules=["highs", "gurobi"], # modules to install license_uuid="your-license-uuid", # license to use ) # instantiate AMPL object and register magics
@alexagreingenieria Жыл бұрын
%%writefile elect.mod set PROD; set REC; param PVENTA{i in PROD}; param DISP{j in REC}; param REQ{i in PROD, j in REC}; var x{i in PROD} >=0; maximize utilidad: sum{i in PROD}(PVENTA[i] * x[i]); subject to recursos{j in REC}: sum{i in PROD}(REQ[i,j] * x[i]) <= DISP[j];
@alexagreingenieria Жыл бұрын
%%writefile elect.dat data; set PROD := CTV PARL; set REC := MET ELC; param: PVENTA:= CTV 10 PARL 20; param: DISP:= MET 200 ELC 300; param REQ: MET ELC:= CTV 1 2 PARL 3 2;
@marceloleal5127 Жыл бұрын
Ññññpppp
@ximenaaguilar1833 Жыл бұрын
Muy buen video!! Excelente explicación 👍
@pancholorca176 Жыл бұрын
Como resuelvo con cplex?
@alexagreingenieria Жыл бұрын
Hola, la antepenúltima línea del código la cambias por ésta: option solver cplex;
@diegoalejandromesaariza3242 Жыл бұрын
Excelente contenido, muchas gracias por la explicación!
@diegoalejandromesaariza3242 Жыл бұрын
Excelente contenido, muchas gracias!
@julianaariaschaquea4147 Жыл бұрын
Mi canal favorito, siempre aprendo gracias Alexagre
@alexagreingenieria Жыл бұрын
Gracias a ti por el apoyo...
@eliecerblanco7518 Жыл бұрын
Muy buen ejemplo, tengo un ejercicio similar, podría recibir tutoría?
#Código en Matlab del video: a = optimvar('a','Type','integer'); b = optimvar('b','Type','integer'); c = optimvar('c','Type','integer'); d = optimvar('d','Type','integer'); p = optimproblem("ObjectiveSense","minimize"); p.Objective = a+b+c+d; p.Constraints.Medida4 = 3*a + b + d >= 150; p.Constraints.Medida5 = 2*c + d >= 200; p.Constraints.Medida6 = b >= 300; p.Constraints.R1 = a >= 0; p.Constraints.R2 = b >= 0; p.Constraints.R3 = c >= 0; p.Constraints.R4 = d >= 0; Sol = solve(p, 'Solver', 'intlinprog');
@eliecerblanco7518 Жыл бұрын
Muy buen ejemplo, tengo un ejercicio similar, podría recibir tutoría?
@alexagreingenieria Жыл бұрын
#CódigoAMPL del video: %%writefile maq.mod set PROD; #Conjunto de productos set MAQ; #Conjunto de máquinas param PVENTA {i in PROD}; # Valor de los productos param DEM {i in PROD}; # Demanda de los productos param DISP {j in MAQ}; # Disponibilidad de recursos param REQ {i in PROD, j in MAQ}; # Requerimiento de máquinas por cada productos param CF {i in PROD}; #Costo de fabricación por ítem var x {i in PROD} >=0; maximize utilidad: sum {i in PROD}(PVENTA[i] * x[i]) - sum{i in PROD}(CF[i] * x[i]); subject to demanda {i in PROD}: x[i] >= DEM[i]; subject to disponibilidad {j in MAQ}: sum{i in PROD} REQ[i,j] * x[i] <= DISP[j]; %%writefile maq.dat data; set PROD := P1 P2 P3 P4; set MAQ := MQ1 MQ2 MQ3; param: PVENTA:= P1 75 P2 70 P3 55 P4 45; param: DEM:= P1 10 P2 50 P3 20 P4 30; param: CF:= P1 63 P2 52 P3 53 P4 34; param: DISP:= MQ1 500 MQ2 380 MQ3 450; param REQ: MQ1 MQ2 MQ3:= P1 2 3 7 P2 3 2 3 P3 4 1 2 P4 2 2 1; %%ampl_eval model maq.mod; data maq.dat; option solver cbc; solve; display x, utilidad;
@alexagreingenieria Жыл бұрын
#CódigoAMPL del video: %%writefile elect.mod set PROD; set REC; param PVENTA{i in PROD}; param DISP{j in REC}; param REQ{i in PROD, j in REC}; var x{i in PROD} >=0; maximize utilidad: sum{i in PROD}(PVENTA[i] * x[i]); subject to recursos{j in REC}: sum{i in PROD}(REQ[i,j] * x[i]) <= DISP[j]; %%writefile elect.dat data; set PROD := CTV PARL; set REC := MET ELC; param: PVENTA:= CTV 10 PARL 20; param: DISP:= MET 200 ELC 300; param REQ: MET ELC:= CTV 1 2 PARL 3 2; %%ampl_eval model elect.mod; data elect.dat; option solver cbc; solve; display x, utilidad, recursos;
@alexagreingenieria Жыл бұрын
#CódigoMatlab del video: x = optimvar('x','Type','continuous'); y = optimvar('y','Type','continuous'); u1 = optimvar('u1','Type','continuous'); v1 = optimvar('v1','Type','continuous'); u2 = optimvar('u2','Type','continuous'); v3 = optimvar('v3','Type','continuous'); u4 = optimvar('u4','Type','continuous'); v4 = optimvar('v4','Type','continuous'); x.LowerBound = 0; y.LowerBound = 0; u1.LowerBound = 0; v1.LowerBound = 0; u2.LowerBound = 0; v3.LowerBound = 0; u4.LowerBound = 0; v4.LowerBound = 0; p = optimproblem("ObjectiveSense","minimize"); p.Objective = u1 + v1 + u2 + v3 + u4 + v4; p.Constraints.tiempo = 10*x + 5*y + u1 - v1 == 3200; p.Constraints.madera = x + 0.5*y + u2 <= 300; p.Constraints.mesas = x - v3 >= 200; p.Constraints.sillasmin = y + u4 >= 200; p.Constraints.sillasmax = y - v4 <= 250; sol = solve(p, 'Solver', 'intlinprog');
#CódigoMatlab del video: R = optimvar('R'); P = optimvar('P'); G = optimvar('G'); x = optimvar('x'); y = optimvar('y'); z = optimvar('z'); m = optimvar('m'); n = optimvar('n'); o = optimvar('o'); A = optimvar('A'); B = optimvar('B'); R.LowerBound = 0; P.LowerBound = 0; G.LowerBound = 0; x.LowerBound = 0; y.LowerBound = 0; z.LowerBound = 0; m.LowerBound = 0; n.LowerBound = 0; o.LowerBound = 0; A.LowerBound = 0; B.LowerBound = 0; p = optimproblem("ObjectiveSense","maximize"); p.Objective = 50.*(R-x)+70.*(P-y)+120.*(G-z) - (10*m+15*n+20*o) - (2*x+3*y+4*z) - (30*A+40*B); p.Constraints.CA = A <= 2500; p.Constraints.CB = B <= 3000; p.Constraints.RR = R == 0.2*A + 0.25*B; p.Constraints.RP = P == 0.1*A + 0.3*B; p.Constraints.RG = G == 0.25*A + 0.1*B; p.Constraints.DR = R + m - x == 500; p.Constraints.DP = P + n - y == 700; p.Constraints.DG = G + o - z == 400; sol = solve(p, 'Solver', 'intlinprog');
@alexagreingenieria Жыл бұрын
#CódigoMatlab del video: L = optimvar('L','Type','continuous'); M = optimvar('M','Type','continuous'); E = optimvar('E','Type','continuous'); J = optimvar('J','Type','continuous'); R = optimvar('R','Type','continuous'); S = optimvar('S','Type','continuous'); D = optimvar('D','Type','continuous'); t = optimvar('t','Type','continuous'); u = optimvar('u','Type','continuous'); v = optimvar('v','Type','continuous'); w = optimvar('w','Type','continuous'); x = optimvar('x','Type','continuous'); y = optimvar('y','Type','continuous'); z = optimvar('z','Type','continuous'); L.LowerBound = 0; M.LowerBound = 0; E.LowerBound = 0; J.LowerBound = 0; R.LowerBound = 0; S.LowerBound = 0; D.LowerBound = 0; t.LowerBound = 0; u.LowerBound = 0; v.LowerBound = 0; w.LowerBound = 0; x.LowerBound = 0; y.LowerBound = 0; z.LowerBound = 0; p = optimproblem("ObjectiveSense","minimize"); p.Objective = 120*(L + M + E + J + R + S + D) + 40*(t + u + v + w + x + y + z); p.Constraints.lun = L+J+R+S+D + t+w+x+y+z >= 170; p.Constraints.mar = L+M+R+S+D + t+u+x+y+z >= 130; p.Constraints.mie = L+M+E+S+D + t+u+v+y+z >= 150; p.Constraints.jue = L+M+E+J+D + t+u+v+w+z >= 190; p.Constraints.vie = L+M+E+J+R + t+u+v+w+x >= 140; p.Constraints.sab = M+E+J+R+S + u+v+w+x+y >= 160; p.Constraints.dom = E+J+R+S+D + v+w+x+y+z >= 110; p.Constraints.nomina = t+u+v+w+x+y+z <= 0.25*(L+M+E+J+R+S+D + t+u+v+w+x+y+z); sol = solve(p, 'Solver', 'intlinprog');
@SoldierLuigi Жыл бұрын
se puede usar la programación entera en matlab?, ya que, son personas los resultados.
@alexagreingenieria Жыл бұрын
@@SoldierLuigi Hola, claro que se puede. En la declaración de variables escribes integer para que el Matlab te genere resultados enteros
@alexagreingenieria Жыл бұрын
#CódigoMatlab del video: q = optimvar('q','Type','integer'); r = optimvar('r','Type','integer'); s = optimvar('s','Type','integer'); t = optimvar('t','Type','integer'); u = optimvar('u','Type','integer'); v = optimvar('v','Type','integer'); w = optimvar('w','Type','integer'); x = optimvar('x','Type','integer'); y = optimvar('y','Type','integer'); z = optimvar('z','Type','integer'); q.LowerBound = 0; q.UpperBound = 1; r.LowerBound = 0; r.UpperBound = 1; s.LowerBound = 0; s.UpperBound = 1; t.LowerBound = 0; t.UpperBound = 1; u.LowerBound = 0; u.UpperBound = 1; v.LowerBound = 0; v.UpperBound = 1; w.LowerBound = 0; w.UpperBound = 1; x.LowerBound = 0; x.UpperBound = 1; y.LowerBound = 0; y.UpperBound = 1; z.LowerBound = 0; z.UpperBound = 1; p = optimproblem("ObjectiveSense","minimize"); p.Objective = 6*q + 4*r + 7*s + 5*t + 4*u + 6*v + 5*w + 3*x + 7*y + 6*z; p.Constraints.Camiones = q + r + s + t + u + v + w + x + y + z <= 3; p.Constraints.Roldanillo = q + u + y >= 1; p.Constraints.Alcala = r + t + v + y + z >= 1; p.Constraints.Cartago = s + t + w + y >= 1; p.Constraints.Yumbo = q + v + x >= 1; p.Constraints.LaUnion = s + t + v >= 1; p.Constraints.Trujillo = r + u >= 1; p.Constraints.Palmira = q + w + x + z >= 1; p.Constraints.Tulua = s + u + z >= 1; p.Constraints.Buga = r + t + w >= 1; sol = solve(p, 'Solver', 'intlinprog');
@alexagreingenieria Жыл бұрын
#CódigoMatlab del video: w = optimvar('w','Type','continuous'); x = optimvar('x','Type','continuous'); y = optimvar('y','Type','continuous'); z = optimvar('z','Type','continuous'); r = optimvar('r','Type','integer'); s = optimvar('s','Type','integer'); t = optimvar('t','Type','integer'); u = optimvar('u','Type','integer'); v = optimvar('v','Type','integer'); r.LowerBound = 0; r.UpperBound = 1; s.LowerBound = 0; s.UpperBound = 1; t.LowerBound = 0; t.UpperBound = 1; u.LowerBound = 0; u.UpperBound = 1; v.LowerBound = 0; v.UpperBound = 1; M = 99999; p = optimproblem("ObjectiveSense","maximize"); p.Objective = 70*w + 60*x + 90*y + 80*z; p.Constraints.Rw = w <= M*r; p.Constraints.Rx = x <= M*s; p.Constraints.Ry = y <= M*t; p.Constraints.Rz = z <= M*u; %El resultado activa u pero no le asigna nada a z p.Constraints.CantP = r + s + t + u <= 2; p.Constraints.P1 = 5*w + 3*x + 6*y + 4*z - M*v <= 6000; p.Constraints.P2 = 4*w + 6*x + 3*y + 5*z - M*(1-v) <= 6000; p.Constraints.R1 = w >= 0; p.Constraints.R2 = x >= 0; p.Constraints.R3 = y >= 0; p.Constraints.R4 = z >= 0; Sol = solve(p, 'Solver','intlinprog');
@alexagreingenieria Жыл бұрын
#CódigoMatlab del video: x = optimvar('x','Type','integer'); y = optimvar('y','Type','integer'); t = optimvar('t','Type','integer'); t.LowerBound = 0; t.UpperBound = 1; M = 9999; p = optimproblem("ObjectiveSense","maximize"); p.Objective = 10*x + 15*y; p.Constraints.Planta1 = 0.02*x + 0.025*y - M*t <= 500; p.Constraints.Planta2 = 0.025*x + 0.04*y - M*(1-t) <= 700; p.Constraints.R1 = x >= 0; p.Constraints.R2 = y >= 0; sol = solve(p, 'Solver', 'intlinprog');