stringtranslate.com

Argumento de carga

En informática , un argumento de cobro se utiliza para comparar el resultado de un algoritmo de optimización con una solución óptima. Normalmente se utiliza para demostrar que un algoritmo produce resultados óptimos al probar la existencia de una función inyectiva particular . Para problemas de maximización de beneficios , la función puede ser cualquier mapeo uno a uno de elementos de una solución óptima a elementos del resultado del algoritmo. Para problemas de minimización de costes, la función puede ser cualquier mapeo uno a uno de elementos del resultado del algoritmo a elementos de una solución óptima.

Exactitud

Para que un algoritmo resuelva de forma óptima un problema de maximización de beneficios, el algoritmo debe producir un resultado que tenga tantos beneficios como la solución óptima para cada posible entrada. Sea | A(I) | el beneficio del resultado del algoritmo dado un insumo I , y sea | OPT(I) | el beneficio de una solución óptima para I . Si existe una función inyectiva h : OPT(I) → A(I) , se deduce que | OPT(I) | | A(I) | . Dado que la solución óptima tiene el mayor beneficio alcanzable, esto significa que el resultado dado por el algoritmo es tan rentable como la solución óptima, y ​​por lo tanto el algoritmo es óptimo.

La corrección del argumento de cobro para un problema de minimización de costos es simétrica. Si | A(I) | y | OPT(I) | denotan el costo de la salida del algoritmo y la solución óptima respectivamente, entonces la existencia de una función inyectiva h : A(I) → OPT(I) significaría que | A(I) | | OPT(I) | . Dado que la solución óptima tiene el costo más bajo, y el costo del algoritmo es el mismo que el costo de la solución óptima del problema de minimización, entonces el algoritmo también resuelve el problema de manera óptima.

Variaciones

Los argumentos de cobro también se pueden utilizar para mostrar resultados de aproximación. En particular, se pueden utilizar para demostrar que un algoritmo es una aproximación n a un problema de optimización. En lugar de demostrar que un algoritmo produce resultados con el mismo valor de beneficio o coste que la solución óptima, demuestre que alcanza ese valor dentro de un factor de n . En lugar de demostrar la existencia de una función uno a uno, el argumento de cobro se centra en demostrar que existe una función n a uno para demostrar resultados de aproximación.

Ejemplos

Problema de programación de intervalos

Dado un conjunto de n intervalos I = {I 1 , I 2 , ... , I n } , donde cada intervalo I iI tiene un tiempo de inicio s i y un tiempo de finalización f i , donde s i < f i , el objetivo es encontrar un subconjunto máximo de intervalos mutuamente compatibles en I . Aquí, se dice que dos intervalos I j e I k son compatibles si no se superponen, en el sentido de que s j < f j ≤ s k < f k .

Consideremos el algoritmo codicioso de tiempo de finalización más temprano , descrito de la siguiente manera:

El problema de programación por intervalos puede considerarse como un problema de maximización de beneficios, en el que la cantidad de intervalos en el subconjunto mutuamente compatible es el beneficio. El argumento de cobro puede utilizarse para demostrar que el algoritmo de tiempo de finalización más temprano es óptimo para el problema de programación por intervalos.

Dado un conjunto de intervalos I = {I 1 , I 2 , ... , I n } , sea OPT(I) cualquier solución óptima del problema de programación de intervalos, y sea EFT(I) la solución del algoritmo de tiempo de finalización más temprano. Para cualquier intervalo J ∈ OPT(I) , defina h(J) como el intervalo J' ∈ EFT(I) que interseca a J con el tiempo de finalización más temprano entre todos los intervalos en EFT(I) que intersecan a J . Para demostrar que el algoritmo de tiempo de finalización más temprano es óptimo utilizando el argumento de cobro, se debe demostrar que h es una función biunívoca que asigna intervalos en OPT(I) a aquellos en EFT(I) . Suponga que J es un intervalo arbitrario en OPT(I) .

Demuestre que h es una función que asigna OPT(I) a EFT(I) .

Supongamos, como contradicción, que no existe ningún intervalo J' ∈ EFT(I) que satisfaga h(J) = J' . Por definición de h , esto significa que ningún intervalo en EFT(I) se interseca con J . Sin embargo, esto también significaría que J es compatible con cada intervalo en EFT(I) , y por lo tanto el algoritmo de tiempo de finalización más temprano habría añadido J a EFT(I) , y por lo tanto J ∈ EFT(I) . Surge una contradicción, ya que se supuso que J no se interseca con ningún intervalo en EFT(I) , pero J está en EFT(I) , y J se interseca consigo mismo. Por lo tanto, por contradicción, J debe intersecarse con al menos un intervalo en EFT(I) .
Queda por demostrar que h(J) es única. Según la definición de compatibilidad, nunca puede darse el caso de que dos intervalos compatibles tengan el mismo tiempo de finalización. Dado que todos los intervalos en EFT(I) son compatibles entre sí, ninguno de estos intervalos tiene el mismo tiempo de finalización. En particular, cada intervalo en EFT(I) que se interseca con J tiene tiempos de finalización distintos, y por lo tanto h(J) es única.

Demuestre que h es uno a uno.

Supongamos por contradicción que h no es inyectiva. Entonces hay dos intervalos distintos en OPT(I) , J 1 y J 2 , tales que h asigna tanto J 1 como J 2 al mismo intervalo J' ∈ EFT(I) . Sin pérdida de generalidad, supongamos que f 1 < f 2 . Los intervalos J 1 y J 2 no pueden intersecarse porque ambos están en la solución óptima, y ​​por lo tanto f 1 ≤ s 2 < f 2 . Dado que EFT(I) contiene J' en lugar de J 1 , el algoritmo de tiempo de finalización más temprano encontró J' antes que J 1 . Por lo tanto, f' ≤ f 1 . Sin embargo, esto significa que f' ≤ f 1 ≤ s 2 < f 2 , por lo que J' y J 2 no se intersecan. Esto es una contradicción porque h no puede asignar J 2 a J' si no se intersecan. Por lo tanto, por contradicción, h es inyectiva.

Por lo tanto, h es una función biunívoca que asigna intervalos en OPT(I) a los de EFT(I) . Según el argumento de cobro, el algoritmo de tiempo de finalización más temprano es óptimo.

Problema de programación de intervalos de trabajo

Consideremos el problema de programación de intervalos de trabajo, una variante NP-hard del problema de programación de intervalos visitado anteriormente. Como antes, el objetivo es encontrar un subconjunto máximo de intervalos mutuamente compatibles en un conjunto dado de n intervalos, I = {I 1 , I 2 , ... , I n } . Cada intervalo I iI tiene un tiempo de inicio s i , un tiempo de finalización f i y una clase de trabajo c i . Aquí, se dice que dos intervalos I j e I k son compatibles si no se superponen y tienen clases diferentes.

Recordemos el algoritmo de tiempo de finalización más temprano del ejemplo anterior. Después de modificar la definición de compatibilidad en el algoritmo, el argumento de cobro se puede utilizar para demostrar que el algoritmo de tiempo de finalización más temprano es un algoritmo de 2 aproximaciones para el problema de programación de intervalos de trabajo.

Sean OPT(I) y EFT(I) la solución óptima y la solución producida por el algoritmo de tiempo de finalización más temprano, como se definió anteriormente. Para cualquier intervalo J ∈ OPT(I) , defina h de la siguiente manera:

Para demostrar que el algoritmo de tiempo de finalización más temprano es un algoritmo de 2 aproximaciones que utiliza el argumento de cobro, se debe demostrar que h es una función dos a uno que asigna intervalos en OPT(I) a aquellos en EFT(I) . Suponga que J es un intervalo arbitrario en OPT(I) .

Demuestre que h es una función que asigna OPT(I) a EFT(I) .

Primero, observe que existe algún intervalo en EFT(I) con la misma clase de trabajo que J , o no lo hay.
Caso 1. Supongamos que algún intervalo en EFT(I) tiene la misma clase de trabajo que J .
Si hay un intervalo en EFT(I) con la misma clase que J , entonces J se asignará a ese intervalo. Dado que los intervalos en EFT(I) son compatibles entre sí, cada intervalo en EFT(I) debe tener una clase de trabajo diferente. Por lo tanto, dicho intervalo es único.
Caso 2. Supongamos que no hay intervalos en EFT(I) con la misma clase de trabajo que J .
Si no hay intervalos en EFT(I) con la misma clase que J , entonces h asigna J al intervalo con el tiempo de finalización más temprano entre todos los intervalos en EFT(I) que intersecan a J . La prueba de existencia y unicidad de dicho intervalo se da en el ejemplo anterior.

Demuestre que h es dos a uno.

Supongamos, por contradicción, que h no es dos a uno. Entonces, hay tres intervalos distintos en OPT(I) , J 1 , J 2 y J 3 , de modo que h asigna cada uno de J 1 , J 2 y J 3 al mismo intervalo J' ∈ EFT(I) . Por el principio del palomar , al menos dos de los tres intervalos se asignaron a J' porque tienen la misma clase de trabajo que J ', o porque J ' es el intervalo con el tiempo de finalización más temprano entre todos los intervalos en EFT(I) que intersecan ambos intervalos. Sin pérdida de generalidad, supongamos que estos dos intervalos son J 1 y J 2 .
Caso 1. Supongamos que J 1 y J 2 se asignaron a J ' porque tienen la misma clase de trabajo que J '.
Entonces , cada J ', J1 y J2 tienen la misma clase de trabajo. Esto es una contradicción, ya que los intervalos en la solución óptima deben ser compatibles, pero J1 y J2 no lo son.
Caso 2. Supongamos que J ' es el intervalo con el tiempo de finalización más temprano entre todos los intervalos en EFT(I) que intersecan tanto J 1 como J 2 .
La prueba de este caso es equivalente a la del ejemplo anterior que mostraba la inyectividad. De la prueba anterior se sigue una contradicción.

Por lo tanto, h no asigna más de dos intervalos distintos en OPT(I) al mismo intervalo en EFT(I) , y por lo tanto h es dos a uno. Según el argumento de cobro, el algoritmo de tiempo de finalización más temprano es un algoritmo de dos aproximaciones para el problema de programación de intervalos de trabajo.

Referencias