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 Nuova risorsa > Risolvi problemi di ottimizzazione nel Lavora con i modelli sezione.
- Fare clic su File locale nella finestra Crea un esperimento Decision Optimization 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à
Supponiamo che tu voglia che la tua formulazione modello esprima la regola che ogni dipendente non può lavorare più di un turno al giorno. Ad esempio, un dipendente non può essere assegnato due turni nella stessa giornata. È 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 tua formulazione del modello.La formulazione 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 iterai sia dipendente che giorno. Si può vedere che il dipendente nella combinazione di dipendenti - day è mappato al dipendente nell'assegnazione del turno di lavoro dipendente. Anche il giorno nella combinazione dei dipendenti è mappato alla proprietà del 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 delle decisioni personalizzate
Informazioni su questa attività
Supponiamo di voler assegnare anche i dazi on-call. 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 le decisioni personalizzate al proprio modello esistente, come dimostrato in questo esempio, è possibile definire le dipendenze tra assegnazione di turni e funzioni on-call. Qui la decisione personalizzata si chiama 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à
Supponiamo di voler garantire che i dazi di chiamata assegnati non si verificino quando un dipendente è in vacanza. È possibile raggiungerlo utilizzando i vincoli logici come segue.
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. Notare 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 dazi on-call. 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 ci si riferisce, viene effettuata automaticamente, senza che si debba usare espressioni di unione più complicate.