[JAVA] Planifiez l'optimisation avec une IA qui comprend la raison du résultat

Auteur: Takashi Takahisa, Hitachi, Ltd.

introduction

Dans cet article, je présenterai l'optimisation de la planification par l'IA qui comprend la raison du résultat.

Vue d'ensemble de l'optimisation du plan

L'optimisation du plan consiste à formuler le meilleur plan (plan de combinaison) avec des ressources limitées, compte tenu des contraintes et de l'efficacité à observer. Les opérations cibles comprennent la planification des changements de personnel, la planification de l'inspection des équipements, la planification des livraisons, les calendriers Semina, la gestion des stocks, l'attribution des cargaisons et l'optimisation du portefeuille financier.

Avantages de l'optimisation de la planification avec l'IA

Il existe différents domaines dans l'optimisation des plans, mais il est difficile de dériver la solution optimale d'un grand nombre de combinaisons avec des ressources limitées et des contraintes individuelles, et il y a une limite à la réalisation manuelle. L'optimisation du plan avec l'IA peut résoudre les points suivants. ・ Le temps de travail pour la planification peut être considérablement réduit. ・ Un plan de haute qualité peut être réalisé en tenant compte de nombreuses restrictions. ・ Vous pouvez éliminer la personnalisation et l'injustice

Les défis de l'optimisation de la planification par l'IA

Lorsque l'IA automatise le travail de planification qu'un planificateur qualifié prend du temps à effectuer, les problèmes suivants se posent. -Il faut du temps pour organiser et mettre en œuvre des spécifications pour de nombreuses conditions de contraintes / index d'évaluation. ・ Il est difficile de confirmer et d'expliquer les résultats dans la boîte noire. ・ Il est difficile de confirmer si le plan est meilleur que lorsqu'il a été mis en œuvre par un planificateur qualifié.

Optimisation de la planification avec Red Hat Decision Manager

Avec Red Hat Decision Manager, vous pouvez résoudre les problèmes ci-dessus. Produit bien connu pour le moteur BRMS / rules, il offre également des capacités d'optimisation de la planification. Les caractéristiques de l'optimisation de la planification à l'aide de ce produit sont présentées ci-dessous.

Fonctionnalité 1 Facile à mettre en œuvre selon des règles

Étant donné que diverses conditions de contraintes / indices d'évaluation, qui sont les spécifications de l'optimisation du plan, peuvent être indépendamment définies comme des règles une par une, il peut être facilement mis en œuvre. Il est difficile de définir avec précision toutes les conditions de contraintes / index d'évaluation depuis le début, mais les spécifications sont clarifiées en implémentant à partir des conditions de contraintes / index d'évaluation dont les spécifications ont été clarifiées, et en ajoutant / ajustant le reste avec TRY & ERROR. Et la mise en œuvre peut être développée en parallèle dans un court laps de temps. La méthode de montage et les caractéristiques sont indiquées ci-dessous.

-Les conditions de contraintes / index d'évaluation pour l'optimisation du plan sont implémentés dans Excel en tant que règles indépendantes. Les spécifications de l'optimisation des plans peuvent être définies en les classant en contraintes absolues, contraintes de prise en compte et index d'évaluation, et peuvent être optimisées pour améliorer le degré de conformité aux contraintes de prise en compte et aux indices d'évaluation tout en respectant toujours les contraintes absolues. Contrainte absolue: une contrainte que vous souhaitez absolument conserver. Contraintes à prendre en compte: Contraintes que vous souhaitez conserver autant que possible. Indice d'évaluation: un indice pour calculer une meilleure combinaison.

** Exemple de règle Excel **

Nom de la règle niveau Coefficient de poids
Contrainte absolue#1_N'affectez pas le même employé à plusieurs créneaux horaires pendant les mêmes heures de travail. Hard 1
Contraintes de prise en compte#1_Affectez des employés à des tâches pour lesquelles ils peuvent travailler. Soft 1000
Contraintes de prise en compte#2_Les stagiaires et les instructeurs sont affectés au même créneau horaire. Soft 500
Contraintes de prise en compte#3_Les membres exclus du travail simultané ne sont pas affectés au même créneau horaire. Soft 50
Index d'évaluation#1_Fermez le lieu de travail pendant les heures de travail avant et après. Soft 10
Index d'évaluation#2_Nivellement de travail_Rapprochez le nombre de responsables de la moyenne Soft 1

-La priorité entre les règles est définie par niveau + coefficient de poids, et le résultat est évalué comme une valeur de score pour chaque niveau. Il est évalué dans l'ordre à partir de la valeur de score de niveau le plus élevé (difficile dans l'exemple ci-dessus), et si la valeur de score de haut niveau est la même, elle est évaluée par la valeur de score de niveau suivant, et la combinaison avec la meilleure valeur de score est la solution optimale. Je vais.

-Les règles peuvent être définies dans un fichier Excel qui a été retiré et peuvent être modifiées à tout moment.

-Même si les conditions de contraintes / index d'évaluation ne sont pas complètement identifiés, les clarifiés peuvent être mis en œuvre en premier, et le reste peut être mis en œuvre ultérieurement.

-Même si la priorité des contraintes / indicateurs d'évaluation n'est pas claire, elle peut être développée en ajustant. (Ajustez le niveau et le coefficient de poids dans le tableau ci-dessus.)

-Le fonctionnement de chaque règle est défini dans le fichier Excel de la règle avec le code du langage dédié appelé DRL. Après la définition, masquez la partie DRL afin que les utilisateurs professionnels puissent facilement se référer / modifier uniquement la partie nécessaire (le tableau ci-dessus est un exemple après masquage). DRL peut être appris immédiatement par quiconque comprend Java.

Contraintes de prise en compte#Exemple de code d'une règle Excel


ShiftAssignment(employee != null, shift.skill != employee.skill)

-Le traitement complexe est décrit du côté Java et les méthodes Java sont appelées à partir du code sur Excel.

Contrainte absolue#Exemple de code d'une règle Excel


ShiftAssignment(employee != null, $name : shift.name, $employee : employee, $shiftDateTime : shift.shiftDateTime)
ShiftAssignment(shift.name > $name, employee == $employee, shift.shiftDateTime.overlaps($shiftDateTime))

Fonction 2 La sortie des informations de score montre la raison du résultat

-Le degré de conformité avec les conditions de contrainte / index d'évaluation qui sont les résultats d'optimisation peut être affiché sous forme d'informations de score.

** Exemple de sortie d'informations sur le score ** score_example.png

· Score total Dans quelle mesure vous conformez-vous aux contraintes / métriques dans leur ensemble (si vous avez atteint la valeur cible). ・ Score par règle Quelle règle (condition de contrainte / indice d'évaluation) est violée. Dans quelle mesure respectez-vous chaque règle? ・ Score détaillé de chaque règle La valeur du score de détail est-elle correcte (fonctionne-t-elle comme prévu)? Quelles données sont violées? Score = - (Nombre moyen de fois en charge-Nombre de fois en charge) ^ 2 A001 :-( 7-6) ^ 2 = -1 ⇒ Correct A002 :-( 7-9) ^ 2 = -4 ⇒ Correct

-En utilisant les informations de score, vous pouvez vérifier si cela fonctionne comme prévu et garantir la qualité.

-Comme vous pouvez voir les conditions de contrainte qui n'ont pas pu être observées, vous pouvez consulter les données d'entrée et les conditions de contrainte.

Fonctionnalité 3 Vous pouvez également générer et comparer les scores des plans précédents.

-Informations sur le score de sortie des données planifiées planifiées à la main ou d'autres produits, comparez les scores de l'ancien plan et du nouveau plan, et vérifiez s'il est supérieur à l'ancien plan.

-Les informations de score des données planifiées peuvent être facilement sorties en utilisant l'application métier et les règles Excel créées pour le calcul d'optimisation normal presque telles quelles.

** Calcul d'optimisation normal ** normal_flow.png ** Informations sur le score de sortie des données planifiées ** planned_data_flow.png

en conclusion

Dans cet article, nous avons présenté l'optimisation du plan à l'aide de l'IA, qui montre la raison des résultats. Si vous trouvez toujours l'IA difficile ou peu fiable, pourquoi ne pas envisager de l'utiliser?

Recommended Posts

Planifiez l'optimisation avec une IA qui comprend la raison du résultat
Planifiez une «image d'utilisation» d'optimisation avec une IA qui comprend la raison du résultat
Générez des couleurs.xml pour les thèmes sombres avec la technologie qui prend en charge Force Dark
[First Java] Créez quelque chose qui fonctionne avec Intellij pour le moment