En matemáticas aplicadas , un problema de asignación generalizada se entiende como un problema de optimización combinatoria , que es una generalización del problema de asignación , en el que el conjunto de ejecutantes tiene un tamaño que no es necesariamente igual al tamaño del conjunto de trabajos. En este caso, el ejecutante puede ser asignado para realizar cualquier trabajo (no necesariamente un trabajo, como en el problema de asignación). Al asignar un ejecutor para realizar el trabajo, se establecen dos valores: costos e ingresos. Cada artista tiene un presupuesto determinado, por lo que la suma de todos los costos no debe exceder este presupuesto. Se requiere encontrar tal asignación de artistas para realizar el trabajo con el fin de maximizar los ingresos.
En el caso de que los presupuestos de los artistas y todos los costos de trabajo sean iguales a 1, el problema se convierte en el problema de coincidencia máxima .
Si los precios y los ingresos de todas las asignaciones de trabajo son iguales, el problema se reduce a una mochila multiplicativa .
Si solo hay un agente, el problema se reduce al problema de la mochila .
Hay n trabajos y m ejecutantes . Cada artista tiene un presupuesto . Para cada par de ejecutante y trabajo se dan los ingresos y el peso . La solución es un subconjunto de trabajos U y una distribución de trabajos de U entre los ejecutantes. La decisión es aceptable si el monto de los costos por el trabajo asignado del artista intérprete o ejecutante no excede el presupuesto . La renta de la sentencia es la suma de todas las rentas de todas las distribuciones de obra-ejecutor.
Matemáticamente, el problema de asignación generalizada se puede formular de la siguiente manera:
maximizar sujeto a ; ; ;El problema de asignación generalizado es NP-hard e incluso APX-hard .
Fleischer, Gomans, Mirokni y Sviridenko propusieron un algoritmo de búsqueda local combinatoria con aproximación y un algoritmo basado en programación lineal con aproximación [1] .
La aproximación es la aproximación más conocida del problema de asignación generalizada.
Usando el algoritmo de aproximación del problema de asignación, se puede crear una aproximación ( ) para el problema de asignación generalizado a la manera de un algoritmo codicioso usando el concepto de ingreso residual. El algoritmo crea iterativamente una secuencia preliminar en la que se supone que debe asignar trabajo al ejecutante en la iteración . La elección del ejecutante se puede cambiar más adelante al asignar trabajo a otros ejecutantes. El ingreso restante del trabajo para el artista intérprete o ejecutante es , si el trabajo no se le da a otro artista intérprete o ejecutante, y - si el trabajo se le da al artista intérprete o ejecutante .
Formalmente:
Utilice el vector para la preselección y en este vector
significa que se supone que debe asignar un ejecutor a la obra , significa que nadie ha sido asignado al trabajo.El ingreso restante por iteración se denota por , donde
si no se selecciona ningún trabajo (es decir, ) , si se supone que la obra debe entregarse al ejecutante (es decir, ).Así que el algoritmo se ve así:
Valores iniciales asignados para todos Para todos , haz: Se utiliza un algoritmo de aproximación para obtener la distribución del trabajo del contratista utilizando la función de ingreso residual . Se indican las obras seleccionadas . Corregido usando , es decir, para todos . fin de ciclo