Aggiungi vincoli multi-concetto e decisioni personalizzate: Decision Optimization assegnazione dei turni
L'esempio Decision Optimization Modeling Assistant mostra come utilizzare le iterazioni multi - concetto, la parola chiave associated
nei vincoli, come definire le proprie decisioni personalizzate e definire i vincoli logici. Ad esempio, viene utilizzato un problema di assegnazione delle risorse, ShiftAssignment
, e il relativo modello completato con i dati viene fornito in DO - samples.
Prima di iniziare
- Requisiti
- Per modificare ed eseguire i modelli Decision Optimization , è necessario disporre dei seguenti prerequisiti:
- Ruoli Admin o Editor
- È necessario disporre di ruoli Admin o Editor nel progetto. I visualizzatori di progetti condivisi possono solo visualizzare gli esperimenti, ma non possono modificarli o eseguirli
- servizio di runtimewatsonx.ai
- È necessario disporre di un servizio watsonx.ai Runtime associato al progetto. È possibile aggiungerne uno quando si crea un esperimento Decision Optimization .
- Spazio di distribuzione
- Devi avere uno spazio di distribuzione associato al tuo esperimento Decision Optimization . È possibile scegliere uno spazio di distribuzione quando si crea un esperimento Decision Optimization .
Informazioni su questa attività
Questo esempio riguarda l'assegnazione di dipendenti a diversi turni e ogni giorno richiede che un numero richiesto di dipendenti sia disponibile. I file utilizzati in questo esempio sono disponibili in DO - samples.
Questo video fornisce un metodo visivo per apprendere i concetti e le attività in questa documentazione. Dopo aver caricato l'esempio nel tuo esperimento Decision Optimization , puoi seguire il video.
Disclaimer video: alcuni passi minori e passaggi grafici in questo video potrebbero differire dalla tua piattaforma. Anche l'interfaccia utente viene spesso migliorata.
Procedura
Per scaricare e aprire l'esempio:
- Scaricare il file ShiftAssignment.zip dalla sottocartella Model_Builder in DO - samples. Selezionare la sottocartella relativa al prodotto e alla versione.
- Aprire il progetto o creare un progetto vuoto.
- Selezionare la scheda Asset .
- Selezionare Nuovo asset> Risolvere i problemi di ottimizzazione nella sezione Gestisci modelli .
- Fare clic su File locale nella finestra Risolvere i problemi di ottimizzazione che si apre.
- Scorrere in locale per trovare e scegliere l'archivio ShiftAssignment.zip scaricato. Fare clic su Apri. In alternativa, utilizzare il trascinamento e rilascio.
- Se non si è già associato un servizio watsonx.ai Runtime al progetto, è necessario selezionare Aggiungi un servizio di Machine Learning per selezionarne o crearne uno prima di scegliere uno spazio di distribuzione per l'esperimento.
- Fare clic su Crea.Viene creato un modello Decision Optimization con lo stesso nome del campione.
- Aprire il riquadro dello scenario e selezionare lo scenario
AssignmentWithOnCallDuties
.
Risultati
Nella Dati di preparazione vista dell' AssignmentWithOnCallDuties
Scenarioè possibile visualizzare gli asset di dati importati. Queste tavole rappresentano i turni, i dipendenti che hanno bisogno di essere assegnati a questi turni e giorni con i loro compiti di chiamata richiesti.
Utilizzo dell'iterazione multi - concetto
Informazioni su questa attività
Si supponga che si desidera che la formulazione del modello esprima la regola che ogni dipendente non può lavorare più di un turno al giorno. Ad esempio, non è possibile assegnare due turni a un dipendente nello stesso giorno. È possibile utilizzare, come mostrato in questa formulazione del modello, un vincolo per ogni giorno della settimana.
Ma elencare i vincoli per ogni giorno della settimana è complicato: se il modello si basava sui giorni dell'anno, è necessario elencare centinaia di questi tipi di vincoli. La seguente procedura mostra come utilizzare l'iterazione multi - concetto e la parola chiave associated
per esprimere l'iterazione su più di un concetto. Quindi, è possibile esprimere una regola del genere con una sola frase.
Procedura
Per utilizzare l'iterazione multi - concetto, effettuare le operazioni riportate di seguito.
- Fare clic su Crea modello nella barra laterale per visualizzare la formulazione del modello.La formulazione del modello mostra l'intento di assegnare i dipendenti ai turni, con i suoi obiettivi e vincoli.
- Espandere il vincolo
For each Employee-Day combination , number of associated Employee-Shift assignments is less than or equal to 1
.
Risultati

Questo vincolo combina i dipendenti e i giorni con la parola chiave associated
in modo che l'espressione si ripeta sia per il dipendente che per il giorno. È possibile vedere che il dipendente nella combinazione giorno - dipendente è mappato al dipendente nell'assegnazione turno - dipendente. Anche il giorno nella combinazione giorno - dipendente viene associato alla proprietà giorno del turno assegnato. Così, le combinazioni sono gestite correttamente e automaticamente per voi.
Con questa iterazione multi - concetto, è possibile specificare nuovi gruppi di regole che combinano concetti differenti.
Definizione di decisioni personalizzate
Informazioni su questa attività
Si supponga di voler assegnare anche i compiti di chiamata. Potresti creare un altro modello con l'intento di assegnare i dipendenti ai compiti di chiamata, ma non potresti dichiarare le regole di dipendenza tra i due modelli. Aggiungendo decisioni personalizzate al tuo modello esistente, come mostrato in questo esempio, puoi definire le dipendenze tra l'assegnazione del turno e le mansioni di chiamata. Qui la decisione personalizzata è chiamata OnCallDuties
.
Procedura
Per definire decisioni personalizzate, attenersi alla seguente procedura.
Risultati
Non sei più limitato a utilizzare solo le decisioni dedotte dal tuo intento. È ora possibile definire le proprie decisioni personalizzate utilizzando le impostazioni avanzate e le schede decisionali, in cui è possibile selezionare il tipo di decisione e le relative dimensioni (tabella dati o colonna). È quindi possibile configurare nuove regole e obiettivi che utilizzano la decisione appena definita.
Utilizzo dei vincoli logici
Informazioni su questa attività
Si supponga di voler garantire che le funzioni di chiamata assegnate non si verifichino quando un dipendente è in ferie. È possibile ottenere questo risultato utilizzando i vincoli logici nel modo seguente.
Procedura
Per utilizzare i vincoli logici:
- Guarda il vincolo Questo vincolo garantisce che, per ogni combinazione di dipendenti e giorni, quando non esistono assegnazioni associate (ad esempio, il dipendente è in ferie in quel giorno), non vengano assegnate funzioni di chiamata a tale dipendente in quel giorno. Si noti l'utilizzo delle parole chiave
if...then
per definire questo vincolo logico. - Facoltativo: aggiungere altri vincoli logici al proprio modello ricercando nei suggerimenti.
Risultati
Questo vincolo collega l'assegnazione dei dipendenti ai turni con i compiti di guardia. Con modelli separati, uno per l'assegnazione del turno originale e un altro per i compiti di guardia non è possibile raggiungere questo collegamento.
Utilizzando i vincoli logici, insieme alla parola chiave associated
, è possibile specificare che, se si applica un vincolo, si applica anche un altro vincolo. La connessione logica necessaria tra i concetti a cui si fa riferimento, viene effettuata automaticamente, senza dover utilizzare espressioni di unione più complicate.