Descomposición de Danzig-Wolfe

El método de descomposición de Danzig-Wolfe es una versión especializada del método simplex .

En 1960, George Dantzig y Philip Wolf método de descomposición para resolver problemas de alta dimensión con una estructura matricial de restricción especial [1] .

Este método resultó ser el más efectivo para resolver problemas cuya matriz de restricciones tiene forma de bloque diagonal con un número pequeño de variables. Sin embargo, como mostraron estudios posteriores, el método también es aplicable a problemas de programación lineal con una matriz general. El método correspondiente fue propuesto por D. B. Yudin y E. G. Holstein y se llama programación de bloques .

Una característica distintiva del método de descomposición es el uso de un problema de coordinación que, en comparación con el original, tiene un pequeño número de filas y un gran número de columnas.

Método de generación de columnas

Es esencial que la solución del problema de coordinación no requiera la especificación explícita de todas las columnas. Se generan en el proceso de utilizar el método simplex. Este enfoque se denomina método de generación de columnas .

Basta con poder generar una columna y tener un procedimiento que seleccione una columna para ingresar a la base.

A menudo, dicho procedimiento se reduce a resolver un subproblema específico (no necesariamente programación lineal).

El principio de descomposición

Lema Sea un conjunto acotado cerrado no vacío en el espacio euclidiano y tenga un número finito de puntos extremos, que se denotarán aquí . Entonces cualquier punto del conjunto se puede representar como una combinación convexa de puntos extremos del conjunto R, es decir pues hay números no negativos cuya suma total es uno ( ) y tales que

(1) .

Deja que la tarea

Maximizar

(2)

bajo restricciones

(3)

(cuatro)

(5)

Las restricciones (3) definen un simplex S, sean sus puntos extremos.

Sea x una solución admisible por el lema

Sustituyamos la última expresión en (2) y (3).

La tarea tomará la forma

maximizar (6)

bajo restricciones

(7)

(8) .

Esta tarea es equivalente a la original (2)-(5) y se denomina tarea de coordinación .

Tiene solo filas de restricciones en comparación con las filas del problema original, y un número muy grande de columnas igual al número de puntos extremos del conjunto . Para no almacenar todas estas columnas en la memoria de la computadora, las recibiremos según sea necesario, utilizando el método de generación de columnas.

Algoritmo

Resolvemos el problema (6)-(8) por el método símplex utilizando el método de generación de columnas.

Para simplificar, supongamos que ya se conoce alguna solución básica admisible.

Denote por la restricción (8), entonces las variables duales son el vector .

Para ingresar la base, es necesario encontrar , tal que

Por lo tanto, basta con encontrar m en el que se alcanza el mínimo

(9)

lo que equivale a resolver el problema

minimizar (10)

bajo las restricciones (4) y (5).

Si el mínimo encontrado no es mayor que , el problema está resuelto.

De lo contrario, se ingresa en la base la columna correspondiente a la solución encontrada.

Bloquear tareas

Deje que las restricciones (4) tengan una estructura de bloque

El problema (10), (4), (5) se divide en subtareas separadas

Encuentra el mínimo

(once)

bajo condiciones

(12)

Notas

  1. George B. Dantzig; Felipe Lobo. Principio de descomposición para programas lineales  (indefinidos)  // Investigación de operaciones. - 1960. - T. 8 . - S. 101-111 .

Literatura