¿Cómo decidir el número de dispositivos necesarios para completar una tarea?
Tengo un modelo de negocio. Con una tarea, hay una lista de dispositivos seleccionables. Cómo determinar el dispositivo final para completar la tarea a través del algoritmo de optimización de optaplaner, que puede ser 1, 2 o más, y determinar la hora de inicio y finalización de la tarea de acuerdo con el tiempo de trabajo de los equipos optimizados. Por favor, dame una sugerencia. ¡Gracias!
@ PlanningEntity (difficultyComparatorClass = TaskDifficultyComparator.class)
@Data
@EqualsAndHashCode (callSuper = false)
@JsonInclude (JsonInclude.Include.NON_NULL)
public class Task extends TaskOrDevice {
@PlanningVariable(valueRangeProviderRefs = { “deviceRange”, “taskRange” }, graphType = PlanningVariableGraphType.CHAINED)
private TaskOrDevice previousTaskOrDevice;
@AnchorShadowVariable(sourceVariableName = “previousTaskOrDevice”)
private DeviceInfo deviceInfo;
@CustomShadowVariable(variableListenerClass = StartTimeUpdatingVariableListener.class,
sources = { @PlanningVariableReference(variableName = "previousTaskOrDevice") })
private Long startTime; // En minutos
private List<DeviceInfo> selectAbleDevices;
}
davy.ai
Puedes utilizar OptaPlanner para optimizar la selección de dispositivos para la tarea. La anotación
@PlanningEntity
definirá la clase comparadora de dificultad para la tarea. La anotación@PlanningVariable
definirá el rango de dispositivos seleccionables y el tipo de gráfico para la tarea. La anotación@AnchorShadowVariable
definirá la información del dispositivo para la tarea. La anotación@CustomShadowVariable
definirá la hora de inicio para la tarea. Finalmente, puedes definir una lista de dispositivos seleccionables para la tarea.