0 / 0

Aggiungi vincoli multi-concetto e decisioni personalizzate: Decision Optimization assegnazione dei turni

Ultimo aggiornamento: 21 nov 2024
Creazione di vincoli e decisioni personalizzate con Decision Optimization Modeling Assistant

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:

  1. Scaricare il file ShiftAssignment.zip dalla sottocartella Model_Builder in DO - samples. Selezionare la sottocartella relativa al prodotto e alla versione.
  2. Aprire il progetto o creare un progetto vuoto.
  3. Selezionare la scheda Asset .
  4. Selezionare Nuovo asset> Risolvere i problemi di ottimizzazione nella sezione Gestisci modelli .
  5. Fare clic su File locale nella finestra Risolvere i problemi di ottimizzazione che si apre.
  6. Scorrere in locale per trovare e scegliere l'archivio ShiftAssignment.zip scaricato. Fare clic su Apri. In alternativa, utilizzare il trascinamento e rilascio.
  7. 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.
  8. Fare clic su Crea.
    Viene creato un modello Decision Optimization con lo stesso nome del campione.
  9. 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.

Preparare la vista dei dati che mostra i dati di Assegnazione

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.

Diversi vincoli, uno per ogni giorno, per formulare un solo turno per dipendente al giorno

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.

  1. 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.
  2. Espandere il vincolo For each Employee-Day combination , number of associated Employee-Shift assignments is less than or equal to 1.

Risultati

Vincolo di combinazione giorno - dipendente espanso

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.

  1. Fare clic su Crea modello per visualizzare la formulazione del modello di AssignmentWithOnCallDuties Scenario.
    Vista del modello di build che mostra la formulazione di assegnazione turno

    La decisione personalizzata OnCallDuties viene utilizzata nel secondo obiettivo. Questo obiettivo garantisce che il numero di mansioni di guardia sia bilanciato rispetto ai dipendenti.

    Il vincolo Vincolo di servizio su chiamata garantisce che i requisiti di servizio on-call elencati nella tabella Giorno siano soddisfatti.

    La seguente procedura mostra come è stata definita questa decisione personalizzata OnCallDuties .

  2. Aprire il riquadro Impostazioni e notare che Visualizza e modifica le decisioni è impostato su true (o su true se è impostato sul valore predefinito false).

    Questa impostazione aggiunge una scheda Decisioni alla finestra Aggiungi al modello .

    Scheda Decisioni del riquadro Aggiungi al modello che mostra due intenti

    Qui puoi vedere che OnCallDuty è specificato come una decisione di assegnazione (per assegnare i dipendenti ai compiti di guardia). Le sue due dimensioni sono definite in riferimento alle tabelle dati Day e Employee. Ciò significa che il modello assegnerà anche i compiti di guardia ai dipendenti. La decisione di assegnazione dipendente - turno è specificata dall'intento originale.

  3. Facoltativo: Immettere il proprio testo per descrivere OnCallDuty nel campo [ da documentare] .
  4. Facoltativo: per creare una propria decisione nella scheda Decisioni , fare clic su immetti nome, immettere un nome e fare clic su Invio.
    Viene creata una nuova decisione (intento) con quel nome con alcuni campi evidenziati da completare utilizzando i menu a discesa. Se, ad esempio, si seleziona assegnazione come tipo di decisione, vengono create due dimensioni. Poiché l'assegnazione implica l'assegnazione di almeno una cosa ad un'altra, è necessario definire almeno due dimensioni. Utilizzare selezionare una tabella per definire le dimensioni.

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:

  1. Guarda il vincolo Suggerimento vincolo logico
    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.
  2. 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.