안녕하세요 @jthi ,
귀하의 제안은 실제로 저희의 비공개 토론에서 Ryan Lekivetz가 저를 추천한 것입니다. 그가 제안한 것은 디자인 생성 전후에 디자인 스크립트에 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 );
귀중한 의견을 나눠주신 모든 분들께 감사드립니다!