Este ejemplo de Decision Optimization Modeling Assistant muestra cómo utilizar iteraciones de varios conceptos, la palabra clave associated
en restricciones, cómo definir sus propias decisiones personalizadas y definir restricciones lógicas. A modo de ilustración, se utiliza un problema de asignación de recursos, ShiftAssignment
, y su modelo completado con datos se proporciona en los DO-samples.
Antes de empezar
- Requisitos
- Para editar y ejecutar modelos de Decision Optimization , debe tener los siguientes requisitos previos:
- Roles Admin o Editor
- Debe tener los roles Admin o Editor en el proyecto. Los visores de proyectos compartidos sólo pueden ver experimentos, pero no pueden modificarlos ni ejecutarlos
- servicio watsonx.ai Tiempo de ejecución
- Debe tener un servicio watsonx.ai Runtime asociado a su proyecto. Puede añadir uno al crear un Decision Optimization experimento.
- Espacio de despliegue
- Debe tener un espacio de despliegue que esté asociado con el experimentode Decision Optimization . Puede elegir un espacio de despliegue al crear un experimentode Decision Optimization .
Acerca de esta tarea
Este ejemplo trata sobre la asignación de empleados a diferentes turnos, y cada día requiere que un número necesario de empleados deben estar de guardia. Los archivos que se utilizan en este ejemplo están disponibles en DO-samples.
Este vídeo proporciona un método visual para aprender los conceptos y tareas de esta documentación. Después de cargar el ejemplo en el experimentode Decision Optimization , puede seguir el vídeo.
Declaración de limitación de responsabilidad de vídeo: algunos pasos menores y gráficos de este vídeo pueden diferir de su plataforma. La interfaz de usuario también se mejora con frecuencia.
Procedimiento
Para descargar y abrir el ejemplo:
- Descargue el archivo ShiftAssignment.zip de la subcarpeta Model_Builder en DO-samples. Seleccione la subcarpeta de producto y versión relevante.
- Abra el proyecto o cree un proyecto vacío.
- Seleccione la pestaña Activos .
- Seleccione Nuevo activo > Resolver problemas de optimización en la sección Trabajar con modelos .
- Pulse Archivo local en la ventana Resolver problemas de optimización que se abre.
- Examine localmente para buscar y elegir el archivo ShiftAssignment.zip que ha descargado. Pulse Abrir. Como alternativa, utilice arrastrar y soltar.
- Si aún no ha asociado un servicio watsonx.ai Runtime a su proyecto, primero debe seleccionar Añadir un servicio Machine Learning automático para seleccionar o crear uno antes de elegir un espacio de despliegue para su experimento.
- Pulse Crear.Se crea un modelo de Decision Optimization con el mismo nombre que el ejemplo.
- Abra el panel de escenario y seleccione el escenario
AssignmentWithOnCallDuties
.
Resultados
En la vista Preparar datos de AssignmentWithOnCallDuties
Escenario, puede ver los activos de datos importados. Estas tablas representan los turnos, los empleados que necesitan ser asignados a estos turnos y los días con sus servicios de guardia necesarios.
Utilización de la iteración multiconcepto
Acerca de esta tarea
Supongamos que desea que su formulación de modelo exprese la regla de que cada empleado no puede trabajar más de un turno por día. Por ejemplo, un empleado no puede tener asignados dos turnos el mismo día. Puede utilizar, tal como se muestra en esta formulación de modelo, una restricción para cada día de la semana.
Pero listar las restricciones para cada día de la semana es engorroso: si el modelo se basaba en días del año, debe listar cientos de este tipo de restricciones. El procedimiento siguiente muestra cómo utilizar la iteración de varios conceptos y la palabra clave associated
para expresar la iteración sobre más de un concepto. Por lo tanto, usted puede expresar tal regla con una sola frase.
Procedimiento
Para utilizar la iteración de varios conceptos, siga estos pasos.
- Pulse Crear modelo en la barra lateral para ver la formulación del modelo.La formulación del modelo muestra la intención de asignar los empleados a los turnos, con sus objetivos y restricciones.
- Expandir la restricción
For each Employee-Day combination , number of associated Employee-Shift assignments is less than or equal to 1
.
Resultados
Esta restricción combina empleados y días con la palabra clave associated
para que la expresión itera tanto a empleado como a día. Puede ver que el empleado de la combinación empleado-día se correlaciona con el empleado de la asignación empleado-turno. También el día de la combinación empleado-día se correlaciona con la propiedad de día del turno asignado. Por lo tanto, las combinaciones se manejan correcta y automáticamente para usted.
Con esta iteración de varios conceptos, puede especificar nuevos grupos de reglas que combinen distintos conceptos.
Definición de decisiones personalizadas
Acerca de esta tarea
Supongamos que también desea asignar servicios de guardia. Puede crear otro modelo con la intención de asignar empleados a tareas de guardia, pero no podrá establecer reglas de dependencia entre los dos modelos. Mediante la adición de decisiones personalizadas al modelo existente, como se muestra en este ejemplo, puede definir dependencias entre la asignación de turnos y los servicios de guardia. Aquí la decisión personalizada se llama OnCallDuties
.
Procedimiento
Para definir decisiones personalizadas, siga estos pasos.
Resultados
Ya no está restringido a utilizar sólo las decisiones deducidas de su intención. Ahora puede definir sus propias decisiones personalizadas utilizando los valores avanzados y las pestañas de decisión, donde puede seleccionar el tipo de decisión y sus dimensiones (tabla de datos o columna). A continuación, puede configurar nuevas reglas y objetivos que utilicen la decisión recién definida.
Utilización de restricciones lógicas
Acerca de esta tarea
Supongamos que desea asegurarse de que los servicios de guardia asignados no tienen lugar cuando un empleado está de vacaciones. Para ello, puede utilizar las restricciones lógicas como se indica a continuación.
Procedimiento
Para utilizar restricciones lógicas:
- Vea la restricción Esta restricción garantiza que, para cada combinación de empleado y día, cuando no existen asignaciones asociadas (por ejemplo, el empleado está de vacaciones ese día), que no se asignen tareas de guardia a dicho empleado ese día. Tenga en cuenta el uso de las palabras clave
if...then
para definir esta restricción lógica. - Opcional: añada otras restricciones lógicas al modelo buscando en las sugerencias.
Resultados
Esta restricción vincula la asignación de los empleados a turnos con servicios de guardia. Con modelos separados, uno para la asignación de turno original y otro para las tareas de guardia no se puede lograr este enlace.
Mediante el uso de restricciones lógicas, junto con la palabra clave associated
, puede especificar que si se aplica una restricción, también se aplica otra restricción. La conexión lógica necesaria entre los conceptos a los que se hace referencia se realiza automáticamente, sin tener que utilizar expresiones de unión más complicadas.