Restricción de disponibilidad de materia prima en un DOEHola,
¿Qué pasa si está haciendo un DOE y cada vez enfrenta una restricción de disponibilidad de materia prima? Claramente, la cantidad de reactivos es limitada.
Seguramente puede resolver el problema solicitando el número total de ejecuciones, pero me pregunto si se podrían usar restricciones. Idealmente, me gustaría estipular como restricción que la suma total de un reactivo no exceda un cierto valor. También podríamos querer usar exactamente esta cantidad para que no pierda materia prima.
Entonces, tener restricciones a lo largo de los ensayos.
¿Alguien se ha enfrentado alguna vez a este problema?
Mi propuesta sería ejecutar un conjunto de DOE y comparar la suma de los reactivos limitados para seleccionar el mejor DOE. ¿Alguien ha probado esto?
Gracias por tus sugerencias.
florencia
Re: Restricción de disponibilidad de materia prima en un DOEPara solucionar el problema, desarrollé un pequeño script. Este script construye un DOE con los factores de la tabla asociada (cambie la ruta en la línea 2).
Consideré que el factor Reactivo solo estaba disponible en 240 unidades (línea 4).
Luego, ejecuto el DOE desde su tamaño mínimo (recuperé el script DOE de la plataforma) hasta un tamaño máximo en número de intentos (aquí, de 12 a 25 intentos) y pruebo la suma de cada DOE en la variable reactivo y comprobar que es menor o igual a 240. Te deja con las tablas posibles (título de la tabla = la suma)
Este enfoque no es el más ideal porque no tengo en cuenta esta restricción cuando optimizo el criterio de optimización como se haría con una restricción entre factores, pero permite mantener los planes aceptables por esta restricción en un conjunto de planes.
FactorsTable= open("Reactor Factors.jmp");
ReactantMaxSum = 240;
For( i = 12, i < 25, i++,
DOeInit = DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ), Set Random Seed( 4547922 ),
Optimality Criterion( Name( "Make D-Optimal Design" ) ), Simulate Responses( 0 ),
Save X Matrix( 0 )}
);
DOeInit << Load Factors( FactorsTable );
DOeInit << Set Sample Size( i );
DOeInit << Make Table();
temp = Current Data Table();
tempdata = temp << Summary( Sum( :Reactant ), Freq( "Aucun(e)" ), Weight( "Aucun(e)" ) );
mySum = Column( 2 )[1];
Show( mySum );
If( mySum > ReactantMaxSum,
Close( temp, NoSave );
Close( tempdata, NoSave );
DOeInit<<CLOSE window=""></CLOSE>Re: Restricción de disponibilidad de materia prima en un DOEAlguien me hizo una pregunta similar recientemente. Creo que otro enfoque sería tratar a Reactant como un factor de covariable. Si solo desea probar el efecto principal del factor, lo óptimo es que el factor solo tome los límites alto y bajo del rango del factor (10 y 20 en este ejemplo).
Para 16 ejecuciones, puede equilibrar correctamente con 8 ejecuciones en Reactivo = 10 y 8 ejecuciones en Reactivo = 20. Entonces, esperaría que un diseño óptimo para el efecto principal de Reactant cumpliera con la restricción de Reactant total <= 240.
Para más ejecuciones, puede calcular todos los valores de Reactivo que dan la mayor cantidad de ejecuciones en 20 y, por lo tanto, el mejor equilibrio, y aún así cumplir con la restricción de Reactivo <= 240. Luego utilícelos como tablas de conjuntos de candidatos para un diseño óptimo.
Calculé los niveles óptimos de reactivo para 16, 18 y 20 ejecuciones (archivo .xlsx adjunto). También se adjunta la tabla de covariables JMP de 20 ejecuciones.
Como ejemplo, usé esto para crear el diseño adjunto para 20 ejecuciones.Creo que este es el diseño D-óptimo para los efectos principales, dada la restricción del Reactivo total <= 240.
Este es un problema interesante. ¡Espero que mi solución sea útil para alguien!
phil