Notas de OptaPlanner 1

1.1 ¿Qué es OptaPlanner?

Toda organización enfrenta un problema de planificación: proporcionar recursos limitados y restringidos (empleados, activos, tiempo y dinero) para un producto o servicio. OptaPlanner se utiliza para optimizar este tipo de planificación para lograr más negocios con menos recursos. Esto se llama Programación de Satisfacción de Restricciones (que forma parte de la disciplina de investigación de operaciones).

OptaPlanner es un motor de resolución de problemas de satisfacción de restricciones liviano e integrable que optimiza los problemas de planificación. Los escenarios a los que es aplicable incluyen:

  • Programación de turnos de empleados: Programar turnos de enfermeras, mecánicos, etc.
  • Programación de Agenda: Agendar reuniones, citas, trabajos de mantenimiento, publicidad, etc.
  • Programación en educación: organización de materias, cursos, exámenes, congresos académicos, etc.
  • Rutas de vehículos: utilice herramientas cartográficas conocidas para planificar rutas de vehículos que transportan carga y/o pasajeros que pueden pasar por múltiples destinos.
  • Problemas de embalaje: cómo cargar artículos utilizando cajas, camiones, barcos y almacenes de almacenamiento, o cómo empaquetar información entre recursos informáticos en la computación en la nube.
  • Programación de operaciones de taller: planificación de líneas de montaje de automóviles, planificación de colas de máquinas, planificación de tareas laborales, etc.
  • Corte de material: minimice el desperdicio al cortar papel, acero, alfombras y más.
  • Programación deportiva: planifique horarios de juegos y entrenamientos para ligas de fútbol y ligas de béisbol.
  • Optimización financiera: optimización de carteras, diversificación de riesgos, etc.

Insertar descripción de la imagen aquí

1.2 ¿Qué es un problema de planificación?

Insertar descripción de la imagen aquí

Los problemas de planificación tienen una solución óptima basada en recursos limitados y reglas específicas. La solución óptima puede ser cualquier número de transacciones, por ejemplo:

  • maximización de ganancias
  • Minimizar el impacto ambiental
  • Maximizar la satisfacción de los empleados y clientes

La capacidad para lograr estos objetivos depende de la cantidad de recursos disponibles, tales como:

  • número de personal
  • tiempo
  • Presupuesto
  • Activos físicos (maquinaria, vehículos, computadoras, edificios, etc.)

También hay que considerar limitaciones específicas asociadas a estos recursos, como el número de horas que una persona puede trabajar, su capacidad para utilizar determinadas máquinas o la compatibilidad entre dispositivos.

OptaPlanner puede ayudar a los programadores de Java a resolver problemas de satisfacción de restricciones de manera eficiente. Utiliza cálculos de puntuación muy eficientes que combinan heurísticas y metaheurísticas de optimización.

1.2.1 ¿El problema de planificación es NP-Completo o NP-Difícil?

Los problemas NP-difíciles son problemas que no se pueden resolver en tiempo polinomial. Estos problemas suelen ser muy difíciles porque su solución requiere importantes recursos computacionales. Ejemplos de problemas NP-Difíciles incluyen el problema del viajante, el problema de divide y vencerás, etc.
El problema NP-Completo se refiere a un problema que se puede resolver en tiempo polinómico pero que se puede resolver durante el proceso de solución del problema NP-Difícil. La solución de estos problemas suele ser más rápida que la solución de problemas NP-Hard, pero aún requiere importantes recursos computacionales. Ejemplos de problemas NP-Completos incluyen problemas de mochila completa, problemas de bifurcación y encuadernación, etc.

Todos los escenarios mencionados anteriormente pueden ser NP-Completo o NP-Difícil, es decir:

  • Es fácil verificar una solución determinada a un problema en un período de tiempo razonable.
  • No existe una fórmula mágica para encontrar la mejor solución a un problema en un período de tiempo razonable. (Al menos, los científicos informáticos más inteligentes del mundo aún no han descubierto tal panacea. Pero si encuentran una solución que funcione para un problema NP-Completo, funcionará para todos los problemas NP-Completo).

Esto significa que resolver el problema puede ser más difícil de lo esperado porque las técnicas utilizadas comúnmente no son suficientes para resolverlo:

  • Los algoritmos de fuerza bruta (incluso sus variantes inteligentes) llevarán mucho tiempo
  • Los algoritmos rápidos (como en un problema de embalaje en contenedores donde los artículos más grandes se colocan primero) producirán soluciones que están lejos de la solución óptima.

Al utilizar algoritmos de optimización avanzados, OptaPlanner puede encontrar soluciones casi óptimas a dichos problemas de planificación en un período de tiempo razonable.

1.2.2 Los problemas de planificación tienen restricciones (restricciones duras o restricciones blandas)

Normalmente, los problemas de planificación tienen al menos dos niveles de restricciones:

  • Una restricción dura absolutamente indestructible (negativa). (Por ejemplo, un profesor no puede impartir dos clases diferentes al mismo tiempo).
  • Una restricción suave (negativa) que no debe violarse si se puede evitar. (Ejemplo: a un maestro no le gusta enseñar los viernes por la tarde).

También pueden existir restricciones positivas para algunos problemas:

  • Restricciones suaves (positivas) que deben satisfacerse si es posible. (Por ejemplo, un maestro prefiere enseñar los lunes por la mañana).

Algunos problemas básicos (como el problema de N-Queens) sólo tienen restricciones estrictas. Algunos problemas tienen tres o más niveles de restricciones, como restricciones duras, medias y blandas.
Estas restricciones definen el cálculo de la puntuación (también llamado función de aptitud) del problema de planificación. Cada solución a un problema de planificación se puede calificar con una puntuación. En OptaPlanner, las restricciones de puntuación están escritas en un lenguaje orientado a objetos (como el código Java). Este código es fácil de escribir, flexible y extensible.

1.2.3 Existe un enorme espacio de búsqueda para problemas de planificación.

Hay muchas soluciones a los problemas de planificación. Estas soluciones se pueden dividir en las siguientes categorías:

  • Una posible solución que no considera si se viola alguna restricción . Los problemas de planificación tienden a tener una gran cantidad de soluciones inútiles.
  • Una solución factible que no viola ninguna restricción dura negativa . Las soluciones factibles suelen ser relativas al número de soluciones posibles. A veces no hay una solución factible. Toda solución factible es una solución posible.
  • La solución óptima con la puntuación más alta . Los problemas de planificación tienen al menos una solución óptima. Esto es cierto incluso cuando no existe una solución factible y la mejor solución no es factible.
  • La mejor solución con la puntuación más alta encontrada en un tiempo determinado . La solución óptima puede ser factible y, si se dispone de tiempo, es la mejor solución.

Contraintuitivamente, incluso si el conjunto de datos es pequeño, la cantidad de soluciones posibles es enorme (si se calcula correctamente). Como puede ver en los ejemplos, la mayoría de los casos tienen más soluciones posibles que la cantidad de átomos en el universo conocido (10 ^ 80). Dado que no existe una fórmula mágica para encontrar una solución óptima, cualquier implementación debe evaluar un subconjunto de posibles soluciones.

OptaPlanner admite una variedad de algoritmos de optimización y puede manejar de manera efectiva una gran cantidad de soluciones posibles. Dependiendo del caso de uso, algunos algoritmos de optimización funcionarán mejor que otros, pero es imposible saberlo con anticipación. Con OptaPlanner, puede cambiar fácilmente los algoritmos de optimización con solo unas pocas líneas de XML o código para modificar la configuración del solucionador.

Supongo que te gusta

Origin blog.csdn.net/zhoudingding/article/details/132248254
Recomendado
Clasificación