Automatisez l'optimisation (de script) pour "chaque ligne" à l'aide de Custom ProfilerBonjour, j'ai un client @Solvay qui utilise Custom Profiler.
Son objectif est de parcourir chaque ligne pour laquelle la performance est inférieure à la spécification, d'obtenir les valeurs des facteurs, de verrouiller les facteurs sur lesquels il n'a aucun contrôle et d'optimiser les performances en utilisant les facteurs sur lesquels il a le contrôle, puis d'enregistrer les nouveaux paramètres et les performances attendues. .
Cela peut être fait manuellement mais malheureusement le Log n'enregistre pas le code correspondant.
Comme il a une grande table de données, il aimerait scripter le processus pour l'automatiser.
Quelqu'un connait le code correspondant ?
note : cela devrait apparaître dans la communauté JMP dans les jours suivants, je suppose.
Emmanuel
Re : Automatiser l'optimisation (de script) pour "chaque ligne" à l'aide de Custom ProfilerVoici un script pour le faire en verrouillant une seule variable. Pour verrouiller plusieurs variables, vous devez imbriquer davantage de boucles For :
dt = open ("$SAMPLE_DATA\Body Fat.jmp");
dt << New Column ("Formula", Set Formula (109.665262588823 + 0.329339426252964 * :"Weight (lbs)"n +
-1.47623913006859 * :"Height (inches)"n + -0.492211525467987 *
:"Neck circumference (cm)"n + -1.41262250197006 *
:"Wrist circumference (cm)"n + (:"Height (inches)"n
-70.1488095238095) * ((:"Height (inches)"n - 70.1488095238095) *
-0.0306978267773712) + (:"Height (inches)"n - 70.1488095238095) * ((
:"Neck circumference (cm)"n - 37.9920634920635) * -0.121564139238233)
+ (:"Neck circumference (cm)"n - 37.9920634920635) * ((
:"Neck circumference (cm)"n - 37.9920634920635) * -0.127296845579246)));
dt:Formula << Set Property ("Response Limits", {Goal( Match Target ), Lower (20, .05), Middle (25, 1), Upper (30, .05)});
prof = dt << Profiler ( Y(:Formula));
for (i = 60, i <= 74, i++,
prof << Term Value ("Height (inches)" (i, Lock (1)) );
prof << Maximize and Remember;
);
Re : Automatiser l'optimisation (script) pour "chaque ligne" à l'aide de Custom ProfilerAu lieu (en plus ?) D'imbriquer des boucles et d'utiliser "Mazimize and Remember", il y a aussi le message "Maximize for Each Grid Point" qui pourrait être exploré.
Re : Automatiser l'optimisation (script) pour "chaque ligne" à l'aide de Custom ProfilerJe jouais avec une idée pour faire quelque chose comme ça.
Names Default To Here( 1 );
// comment out the nexct line if the script is pasted into a table
dt = Open( "AutoProfiler Tiretread.jmp" );
// uncomment the next line if the script is pasted into a table
//dt=current data table();
//This is where your profiler script goes
obj = dt << Profiler(
Y(
:Pred Formula ABRASION,
:Pred Formula MODULUS,
:Pred Formula ELONG,
:Pred Formula HARDNESS
),
Profiler(
1,
Term Value(
SILICA( 1.25, Lock( 0 ), Show( 1 ) ),
SILANE( 50, Lock( 0 ), Show( 1 ) ),
SULFUR( 2.25, Lock( 0 ), Show( 1 ) )
),
Simulator(
1,
Factors(
SILICA << Random( Normal( 1.25, 0.3266 ) ),
SILANE << Random( Normal( 50, 6.532 ) ),
SULFUR << Random( Normal( 2.25, 0.3266 ) )
),
Automatic Histogram Update( 1 )
)
)
);
//your profiler goes above here
obj << Simulator( 1 );
obj2 = obj << Get Simulator;
obj2 << Automatic Histogram Update( 1 );
For( i = 1, i <= N Rows( dt ), i++,
obj << Set to Data in Row( i );
obj << Remember Settings(Column(1)[i]); //"Column(1)[i]" is the firtst column of the table, ith row
);//end of for loop
obj<<DISPATCH></DISPATCH>
Il exécute le profileur et enregistre les paramètres de toutes les lignes de la table. Votre client devrait créer un sous-ensemble des lignes défectueuses, puis exécuter un script comme celui-ci.

Re : Automatiser l'optimisation (script) pour "chaque ligne" à l'aide de Custom ProfilerMerci à vous deux 