Máx. De una combinación convexa sobre un casco convexo de variables reales

8

Tengo el siguiente programa lineal: dondexRn,1Txdenota la suma de las entradas dex, yaes conocido y tiene entradas distintas estrictamente positivas.

MaximizeaTxSubject toxminxxmax1Tx=1
xRn1Txxa

Estoy buscando una forma rápida de resolver lo anterior sin usar un solucionador de LP. ¿Hay un procedimiento rápido a seguir? (además de Simplex).

¡Gracias!

Mohammad Fawaz
fuente

Respuestas:

5

La solución óptima es la siguiente: establecer todas las variables iguales a sus mínimos. Luego, comenzando desde el más grande hasta el más pequeño, establezca iterativamente el correspondiente x i lo más grande posible hasta que presione i x i = 1 . Si i x i , m i n > 1 o i x i , m a x < 1, entonces el problema es inviable. Creo que esta es la misma solución que genera el algoritmo de Geoffrey Irving.aixiixi=1ixi,min>1ixi,max<1

La razón por la que esto funciona es que puede transformar su problema en la relajación LP del problema de la mochila 0-1 a través de

yi=xixi,minxi,maxxi,min.

En el espacio variable , el problema se convierte en Maximizar i c i y i Sujeto a 0 y i1 ,  para cada  iy

MaximizeiciyiSubject to0yi1, for each iibiyi=d,

donde , b i = ( x i , m a x - x i , m i n ) y d = 1 - i x i , m i n . Si el problema original es factible, entonces d 0ci=ai(xi,maxxi,min)bi=(xi,maxxi,min)d=1ixi,mind0. Las 'sy b i ' s no son negativas, por lo que tenemos la relajación LP de 0-1 mochila. (La expresión i a i x i , m i n también aparece técnicamente en el objetivo, pero como es una constante, podemos descartarla).cibiiaixi,min

Suponiendo que las variables están ordenadas por la relación cibi=aiy1=y2==yk=1kyk+1=di=1kbiyk+2==yn=0xEl espacio problemático variable proporciona la solución que acabo de describir.

=xixi,max<1

Mike Spivey
fuente
7

xiaixmaxxjajxminO(nlogn)aO(n)

xixmaxaixjxminajxkxmin<xk<xmaxai>ak>ajxxjxkxixk

Geoffrey Irving
fuente
x
Gracias por su respuesta. El enfoque parece interesante, pero secundo la solicitud de @ArnoldNeumaier de proporcionar un argumento.
Mohammad Fawaz
Cambia dos componentes por iteración, por lo que no estoy seguro de lo que quieres decir con no correcto si se toma literalmente. Agregaré una breve explicación.
Geoffrey Irving
xiiij
Ah, tienes razón sobre lo mismo en cada iteración. Debería arreglarse ahora.
Geoffrey Irving