こんにちは@jthi 、
あなたの提案は、まさに私たちのプライベートな議論でライアン・レキベッツに勧められたものです。彼が提案したのは、デザイン生成の前後にデザインスクリプトにTick Seconds()関数を導入して、デザイン生成時間をカウントすることでした。
以下の例 ( 行列を使用するからヒントを得た):
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 );
そして、このデザイン生成では、ログで値を見つけることができます:
t2 - t1 = 2.31666666665114;
なので、私はこの方法を手動で様々なデザインに使用します(あまり時間はかからないはずです)。このプロセスを自動化したり、もっとシンプルにする方法があれば、ぜひ教えてください。:)
ご興味と推薦をいただきありがとうございます。
JSLでDoEを実行する場合、私は次のようにします。異なるシード値や設定で複数回実行する必要がある場合は、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: DoE 生成時間を記録するにはどうすればいいですか?</LINGO-SUB>
<LINGO-BODY id="lingo-body-897331" slang="en-US" mode="CREATE">
<P>解決策をありがとう<A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366" target="_blank">@jthi</A> !<BR />このスクリプトは少数の設計を自動化するのには良さそうですが、31の設計に対して実行する必要があるため、配列内に各DOE生成スクリプトを追加するのは少し面倒です。 <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/5358" target="_blank">@マーク・ベイリー</A>が提案したアップグレードを適用し、Tick Seconds()をHP Time()に置き換えて「手動」バージョンを引き続き使用することにします。これにより、マイクロ秒単位でより正確な測定が可能になります。<BR />特定の例の最終的なスクリプトは次のようになります。</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 );
皆様、貴重なご意見をありがとうございました!