Adding multi-concept constraints and custom decisions: shift assignment
Ajouter des contraintes multi-concepts et des décisions personnalisées : Decision Optimization affectation des équipes
Dernière mise à jour : 21 nov. 2024
Création de contraintes et de décisions personnalisées avec l'assistant de modélisation d'optimisation des décisions
Cet exemple Decision OptimizationModeling Assistant vous montre comment utiliser des itérations multiconcepts, le mot clé associated dans les contraintes, comment définir vos propres décisions personnalisées et définir des contraintes logiques. A des fins d'illustration, un problème d'affectation de ressources, ShiftAssignment, est utilisé et son modèle terminé avec des données est fourni dans DO-samples.
Avant de commencer
Copy link to section
Exigences
Pour éditer et exécuter des modèles Decision Optimization , vous devez disposer des prérequis suivants:
Rôles Admin ou Editeur
Vous devez disposer des rôles Admin ou Editeur dans le projet. Les afficheurs de projets partagés ne peuvent voir que les expérimentations, mais ne peuvent pas les modifier ou les exécuter
service d'exécutionwatsonx.ai
Vous devez avoir un service d'exécutionwatsonx.ai associé à votre projet. Vous pouvez en ajouter un lorsque vous créez un Decision Optimizationexpérimentation.
Espace de déploiement
Vous devez disposer d'un espace de déploiement associé à votre Decision Optimizationexpérimentation. Vous pouvez choisir un espace de déploiement lorsque vous créez un Decision Optimizationexpérimentation.
A propos de cette tâche
Copy link to section
Cet exemple concerne l'affectation d'employés à des périodes de travail différentes, et chaque jour exige qu'un nombre requis d'employés soient de garde. Les fichiers utilisés dans cet exemple sont disponibles dans DO-samples.
Cette vidéo fournit une méthode visuelle pour apprendre les concepts et les tâches de cette documentation. Après avoir chargé l'exemple dans votre Decision Optimizationexpérimentation, vous pouvez suivre la vidéo.
Clause de protection vidéo: Certaines étapes mineures et graphiques de cette vidéo peuvent différer de votre plateforme. L'interface utilisateur est également fréquemment améliorée.
Téléchargez le fichier ShiftAssignment.zip depuis le sous-dossier Model_Builder dans DO-samples. Sélectionnez le sous-dossier correspondant au produit et à la version en question.
Ouvrez votre projet ou créez un projet vide.
Sélectionnez l'onglet Actifs .
Sélectionnez Nouvel actif > Résoudre les problèmes d'optimisation dans la section Utiliser des modèles .
Cliquez sur Local file dans la fenêtre Solve optimization problems qui s'ouvre.
Recherchez et choisissez l'archive ShiftAssignment.zip que vous avez téléchargée en local. Cliquez sur Ouvrir. Vous pouvez également utiliser la fonction glisser-déposer.
Si vous n'avez pas encore associé un service d'exécutionwatsonx.ai à votre projet, vous devez d'abord sélectionner Ajouter un service de Machine Learning pour en sélectionner ou en créer un avant de choisir un espace de déploiement pour votre expérience.
Cliquez sur Créer.
Un modèle Decision Optimization est créé avec le même nom que l'exemple.
Ouvrez le panneau de scénario et sélectionnez le scénario AssignmentWithOnCallDuties .
Résultats
Copy link to section
Dans le Préparer les donnéesafficher du AssignmentWithOnCallDutiesScénario, vous pouvez voir les actifs de données importés. Ces tableaux représentent les équipes de travail, les employés qui doivent être affectés à ces équipes et les jours avec leurs fonctions d'astreinte.
Utilisation de l'itération multi-concept
Copy link to section
A propos de cette tâche
Copy link to section
Supposons que vous souhaitiez que l'élaboration de votre modèle exprime la règle selon laquelle chaque employé ne peut travailler dans plus d'une équipe par jour. Par exemple, un employé ne peut pas être affecté à deux équipes le même jour. Vous pouvez utiliser, comme illustré dans cette formulation de modèle, une contrainte pour chaque jour de la semaine.
Mais la liste des contraintes pour chaque jour de la semaine est lourde: si votre modèle était basé sur les jours de l'année, vous devez alors répertorier des centaines de ces types de contraintes. La procédure suivante montre comment utiliser l'itération multiconcept et le mot clé associated pour exprimer l'itération sur plusieurs concepts. Ainsi, vous pouvez exprimer une telle règle avec une seule phrase.
Procédure
Copy link to section
Pour utiliser l'itération multiconcept, procédez comme suit.
Cliquez sur Créer un modèle dans la barre d'options latérale pour afficher la formulation de votre modèle.
L'élaboration du modèle montre que l'intention est d'affecter les employés aux équipes, avec ses objectifs et ses contraintes.
Développez la contrainte For each Employee-Day combination , number of associated
Employee-Shift assignments is less than or equal to 1.
Résultats
Copy link to section
Cette contrainte combine les employés et les jours avec le mot clé associated de sorte que l'expression itère sur l'employé et le jour. Vous voyez que l'employé dans la combinaison employé-jour est mis en correspondance avec l'employé dans l'affectation employé-équipe. De même, le jour dans la combinaison employé-jour est associé à la propriété jour de l'équipe affectée. Ainsi, les combinaisons sont correctement et automatiquement gérées pour vous.
Avec cette itération multiconcept, vous pouvez spécifier de nouveaux groupes de règles qui combinent différents concepts.
Définition de décisions personnalisées
Copy link to section
A propos de cette tâche
Copy link to section
Supposons que vous souhaitiez également attribuer des fonctions d'astreinte. Vous pouvez créer un autre modèle avec l'intention d'affecter des employés à des tâches de garde, mais vous ne pourrez alors pas définir de règles de dépendance entre les deux modèles. En ajoutant des décisions personnalisées à votre modèle existant, comme le montre cet exemple, vous pouvez définir des dépendances entre l'affectation des équipes et les astreintes. Ici, la décision personnalisée s'appelle OnCallDuties.
Procédure
Copy link to section
Pour définir des décisions personnalisées, procédez comme suit.
Cliquez sur Créer un modèle pour afficher la formulation de modèle du AssignmentWithOnCallDutiesScénario.
La décision personnalisée OnCallDuties est utilisée dans le deuxième objectif. Cet objectif garantit que le nombre d'astreintes est équilibré par rapport aux employés.
La contrainte garantit que les exigences de service de garde répertoriées dans la table Jour sont satisfaites.
Les étapes suivantes vous montrent comment cette décision personnalisée OnCallDuties a été définie.
Ouvrez le panneau Paramètres et remarquez que l'option Visualiser et éditer les décisions est définie sur true (ou sur true si elle est définie sur la valeur par défaut false).
Ce paramètre ajoute un onglet Décisions à votre fenêtre Ajouter au modèle .
Ici, vous pouvez voir que OnCallDuty est spécifié en tant que décision d'affectation (pour affecter des employés à des tâches de garde). Ses deux dimensions sont définies en référence aux tables de données Day et Employee. Cela signifie que votre modèle attribuera également des astreintes aux employés. La décision d'affectation employé-équipe est spécifiée par rapport à l'intention initiale.
Facultatif: Entrez votre propre texte pour décrire le OnCallDuty dans la zone [ à documenter ] .
Facultatif: Pour créer votre propre décision dans l'onglet Décisions , cliquez sur Entrez un nom, entrez un nom et cliquez sur Entrée.
Une nouvelle décision (intention) est créée avec ce nom avec des zones mises en évidence à remplir à l'aide des menus déroulants. Si, par exemple, vous sélectionnez affectation comme type de décision, deux dimensions sont créées. Comme l'affectation consiste à attribuer au moins une chose à une autre, vous devez définir au moins deux dimensions. Utilisez les zones sélectionner une table pour définir les dimensions.
Résultats
Copy link to section
Vous n'êtes plus limité à utiliser uniquement les décisions déduites de votre intention. Vous pouvez désormais définir vos propres décisions personnalisées à l'aide des paramètres avancés et des onglets de décision, dans lesquels vous pouvez sélectionner votre type de décision et ses dimensions (table de données ou colonne). Vous pouvez ensuite configurer de nouvelles règles et de nouveaux objectifs qui utilisent votre décision nouvellement définie.
Utilisation de contraintes logiques
Copy link to section
A propos de cette tâche
Copy link to section
Supposons que vous vouliez vous assurer que les astreintes affectées ne se produisent pas lorsqu'un employé est en vacances. Pour ce faire, utilisez des contraintes logiques comme suit.
Procédure
Copy link to section
Pour utiliser des contraintes logiques:
Voir la contrainte
Cette contrainte garantit que, pour chaque combinaison d'employé et de jour, lorsqu'il n'y a pas d'affectation associée (par exemple, l'employé est en vacances ce jour-là), aucune tâche de garde n'est affectée à cet employé ce jour-là. Notez l'utilisation des mots clés if...then pour définir cette contrainte logique.
Facultatif: Ajoutez d'autres contraintes logiques à votre modèle en effectuant une recherche dans les suggestions.
Résultats
Copy link to section
Cette contrainte lie l'affectation des employés aux équipes avec des astreintes. Avec des modèles distincts, un pour l'affectation de la période de travail d'origine et un autre pour les tâches de garde, vous ne pouvez pas obtenir ce lien.
En utilisant des contraintes logiques, avec le mot clé associated , vous pouvez spécifier que si une contrainte s'applique, une autre s'applique également. La connexion logique nécessaire entre les concepts auxquels vous faites référence est faite automatiquement, sans que vous ayez à utiliser des expressions de jonction plus compliquées.
À propos des cookies sur ce sitePour fonctionner correctement, nos sites Internet nécessitent certains cookies (requis). En outre, d'autres cookies peuvent être utilisés avec votre consentement pour analyser l'utilisation d'un site, améliorer l'expérience des utilisateurs et à des fins publicitaires.Pour plus informations, passez en revue vos options de préférences en préférences en matière de cookies. En visitant notre site Web, vous acceptez que nous traitions les informations comme décrit dans ladéclaration de confidentialité d’IBM.Pour faciliter la navigation, vos préférences en matière de cookie seront partagées dans les domaines Web d'IBM énumérés ici.