Salut @jthi ,
Votre suggestion est en effet ce que m'a recommandé Ryan Lekivetz lors de notre discussion privée ; ce qu'il suggère était l'introduction de la fonction Tick Seconds() dans le script de conception avant et après la génération de la conception, pour compter le temps de génération de la conception
Un exemple ci-dessous (inspiré de Utiliser des matrices ) :
t1 = Tick Seconds();
DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ),
Add Factor( Continuous, -1, 1, "X4", 0 ),
Add Factor( Continuous, -1, 1, "X5", 0 ),
Add Factor( Continuous, -1, 1, "X6", 0 ),
Add Factor( Continuous, -1, 1, "X7", 0 ),
Add Factor( Continuous, -1, 1, "X8", 0 ),
Add Factor( Continuous, -1, 1, "X9", 0 ), Set Random Seed( 830486233 ),
FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, 27 ), Simulate Responses( 0 ),
Set Run Order( Randomize ), Make Table}
);
t2 = Tick Seconds();
Show( t2 - t1 );
Et pour cette génération de conception, je peux trouver la valeur dans le journal :
t2 - t1 = 2.31666666665114;
J'utiliserai donc cette méthode manuellement pour mes différentes créations (cela ne devrait pas prendre trop de temps), si vous avez une idée sur la façon d'automatiser ce processus ou de le rendre plus simple, vous êtes les bienvenus:)
Merci pour l'intérêt et la recommandation,
Si vous souhaitez réaliser le DoE avec JSL, voici ce que je vous conseillerais. Si vous devez le faire plusieurs fois avec des valeurs/paramètres différents, vous pouvez aller un peu plus loin avec JSL.
Names Default To Here(1);
record_doe = function({doe_expr}, {Default Local},
wait(0);
start = Tick Seconds();
d = Eval(doe_expr);
dt = d << Make Table;
wait(0);
end = Tick Seconds();
d << Close Window;
Close(dt, no save);
return(end - start);
);
designs = Associative Array();
designs["Space Filling MaxPro"] = Expr(DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ),
Add Factor( Continuous, -1, 1, "X4", 0 ),
Add Factor( Continuous, -1, 1, "X5", 0 ),
Add Factor( Continuous, -1, 1, "X6", 0 ),
Add Factor( Continuous, -1, 1, "X7", 0 ),
Add Factor( Continuous, -1, 1, "X8", 0 ),
Add Factor( Continuous, -1, 1, "X9", 0 ), Set Random Seed( 830486233 ),
FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, 27 ), Simulate Responses( 0 ),
Set Run Order( Randomize )}
));
designs["Space Filling Centroid"] = Expr(DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ),
Add Factor( Continuous, -1, 1, "X4", 0 ),
Add Factor( Continuous, -1, 1, "X5", 0 ),
Add Factor( Continuous, -1, 1, "X6", 0 ),
Add Factor( Continuous, -1, 1, "X7", 0 ),
Add Factor( Continuous, -1, 1, "X8", 0 ),
Add Factor( Continuous, -1, 1, "X9", 0 ), Set Random Seed( 1 ),
FFF Optimality Criterion( Centroid ),
Space Filling Design Type( Fast Flexible Filling, 20 ), Simulate Responses( 0 ),
Set Run Order( Randomize )}
));
design_durations = Associative Array();
For Each({{design_name, design_expr}}, designs,
design_dur = record_doe(design_expr);
design_durations[design_name] = design_dur
);
Show(design_durations);
You could also of course save the designs</CODE></P>
</LINGO-BODY>
<LINGO-SUB id="lingo-sub-897331" slang="en-US" mode="CREATE">Re : Comment enregistrer le temps de génération du DoE ?</LINGO-SUB>
<LINGO-BODY id="lingo-body-897331" slang="en-US" mode="CREATE">
<P>Merci beaucoup pour la solution <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366" target="_blank">@jthi</A> !<BR /> Le script semble efficace pour automatiser cette opération sur quelques conceptions, mais comme je dois l'exécuter pour 31 conceptions, il serait un peu fastidieux d'ajouter chaque script de génération de DOE au tableau. Je vais continuer avec la version « manuelle », avec la mise à niveau mentionnée par <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/5358" target="_blank">@Mark_Bailey</A> pour remplacer Tick Seconds() par HP Time(), car elle fournit une mesure plus précise en microsecondes.<BR /> Le script final pour un exemple spécifique ressemble à :</P>
<PRE><CODE class=" language-jsl">t1 = HP Time();
DOE(
Space Filling Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, -1, 1, "X1", 0 ),
Add Factor( Continuous, -1, 1, "X2", 0 ),
Add Factor( Continuous, -1, 1, "X3", 0 ),
Add Factor( Continuous, -1, 1, "X4", 0 ),
Add Factor( Continuous, -1, 1, "X5", 0 ),
Add Factor( Continuous, -1, 1, "X6", 0 ),
Add Factor( Continuous, -1, 1, "X7", 0 ),
Add Factor( Continuous, -1, 1, "X8", 0 ),
Add Factor( Continuous, -1, 1, "X9", 0 ), Set Random Seed( 830486233 ),
FFF Optimality Criterion( MaxPro ),
Space Filling Design Type( Fast Flexible Filling, 27 ), Simulate Responses( 0 ),
Set Run Order( Randomize ), Make Table}
);
t2 = HP Time();
Show( t2 - t1 );
Merci à tous pour vos précieuses contributions !