Ciao,
Lavoro su un DOE con due fattori cont. e due categoriali
| Fattore |
Basso livello |
|
Alto livello |
| Angolo CB 1 (continuo) |
10 |
|
60 |
| Angolo CB 2 (continuo) |
10 |
|
60 |
| Barra trasversale 1 (categorica) |
Morbido |
|
Difficile |
| Barra trasversale 2 (categorica) |
Rosso |
Giallo |
Blu |
Passiamo ora ai vincoli:
Angolo CB 1 e Angolo CB 2 <= 70
E
Per barra trasversale 1 == dura, angolo CB 1 == 25
1) Se provo contemporaneamente il vincolo lineare e le combinazioni non consentite, funziona (parte 1 e 2 dello script), ma se includo entrambi i vincoli (parte 3 dello script), il vincolo lineare scompare.
2) Il bilanciamento tra la Cross Bar 1 soft e la Cross Bar 1 hard è fortemente sbilanciato verso la soft. Come posso risolvere questo problema?
Se hai una soluzione a questo problema te ne sarei molto grato, grazie.
CIAO,
Se hai bisogno di vincoli di combinazioni non consentite e vincoli lineari per lo stesso progetto, puoi scrivere i vincoli lineari come combinazioni non consentite. Ecco un esempio di codice che potrebbe fare al caso tuo:
DOE(
Custom Design,
{Add Response( Maximize, "Y", ., ., . ),
Add Factor( Continuous, 10, 60, "CB Angle 1", 0 ),
Add Factor( Continuous, 10, 60, "CB Angle 2", 0 ),
Add Factor( Categorical, {"Red", "Yellow", "Blue"}, "CB 2", 0 ),
Add Factor( Categorical, {"Soft", "Hard"}, "CB 1", 0 ),
Set Random Seed( 277794177 ), Number of Starts( 7637 ), Add Term( {1, 0} ),
Add Term( {1, 1} ), Add Term( {2, 1} ), Add Term( {3, 1} ), Add Term( {4, 1} ),
Add Term( {1, 2} ), Add Term( {2, 2} ), Add Alias Term( {1, 1}, {2, 1} ),
Add Alias Term( {1, 1}, {3, 1} ), Add Alias Term( {1, 1}, {4, 1} ),
Add Alias Term( {2, 1}, {3, 1} ), Add Alias Term( {2, 1}, {4, 1} ),
Add Alias Term( {3, 1}, {4, 1} ), Set Sample Size( 12 ),
Disallowed Combinations(
CB 1 == "Hard" & CB Angle 1 <= 24.5 | CB 1 == "Hard" & CB Angle 1 >= 25.5 |
CB Angle 1 + CB Angle 2 > 70
), Simulate Responses( 0 ), Save X Matrix( 0 ), Make Design,
Set Run Order( Randomize ), Make Table}
);
Nota che ho cambiato "<=" in ">" per rendere il vincolo lineare un vincolo "non consentito".
Spero che questo ti sia utile.
Ciao Soren,
In genere, quando una progettazione prevede diversi tipi di vincoli, la mia soluzione preferita sarebbe quella di utilizzare un approccio basato su un set di candidati e utilizzare la piattaforma di progettazione personalizzata basata su questo set di candidati.
Un modo per crearlo è sapere qual è la dimensione incrementale minima tra i livelli del fattore (in particolare per l'angolo, sei in grado di impostare l'angolo con una precisione di 1°? Di più? Di meno?) e creare una tabella di tutte le combinazioni.
- Per prima cosa ho creato due tabelle per ciascuno dei fattori continui, con un'inizializzazione dei dati in sequenza da 10 a 60 con un passo di 1:

- Quindi eseguo un join cartesiano di queste due tabelle (2601 possibili combinazioni uniche nella tabella risultante). Filtro ogni combinazione in cui Angolo 1 + Angolo 2 > 70 (1326 righe rimanenti).
- Creo due tabelle per i fattori categoriali ed eseguo un join cartesiano tra le due (6 combinazioni univoche):

- Infine, un'unione cartesiana tra questa tabella dei fattori categoriali e quella continua filtrata ci porta quasi al set finale dei candidati (7956 righe).
- Applico quindi su questa tabella finale l'ultimo vincolo rimanente solo per la barra trasversale "dura" 1 per escludere le righe che non rispettano il vincolo: per la barra trasversale 1 == Dura, angolo CB 1 == 25 (4086 righe rimanenti).
Potete trovare il set di candidati allegato.
È quindi possibile utilizzare questo set di candidati con la piattaforma Custom Design, selezionando le esecuzioni dei fattori di covariazione dalla tabella, specificando il modello desiderato e un numero appropriato di esecuzioni:

È quindi possibile ottenere un progetto ottimale costruito solo con esecuzioni fattibili dalla tabella dei set di candidati:

In allegato è riportata la tabella di progettazione proposta con 24 esecuzioni, come nel tuo caso d'uso.
Non mi aspetto che l'equilibrio tra i due livelli della Barra Trasversale 1 sia "fisso", poiché lo spazio sperimentale per il livello Soft è molto più ampio di quello per il livello Hard (a causa del suo vincolo). Cercare di forzare l'equilibrio tra i due livelli con il vincolo che hai menzionato potrebbe comportare una progettazione "meno ottimale" e stime meno precise per gli altri termini.
MODIFICA: otterrai lo stesso design o uno simile con le stesse prestazioni se utilizzi l'approccio di @Laura_Lancaster o questo con le stesse dimensioni di produzione.
Spero che questa soluzione possa funzionare per te,
Grazie Laura. Funziona. Non capisco perché funzioni con il comando "o" nelle combinazioni non consentite e probabilmente non ci avrei mai provato. Grazie.
Ciao Victor, è fantastico! Mi restituirà il controllo su tutti i vincoli dei miei colleghi! Grazie mille per la condivisione.