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


8

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

MaximizeaTxSubject toxmin≤x≤xmax1Tx=1
x∈Rn1Txxa

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!

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.aixi∑ixi=1∑ixi,min>1∑ixi,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=xi−xi,minxi,max−xi,min.

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

Maximize∑iciyiSubject to0≤yi≤1, for each i∑ibiyi=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,max−xi,min)bi=(xi,max−xi,min)d=1−∑ixi,mind≥0. 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).cibi∑iaixi,min

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

≤=x∑ixi,max<1


7

xiaixmaxxjajxminO(nlog⁡n)aO(n)

xixmaxaixjxminajxkxmin<xk<xmaxai>ak>ajxxjxkxixk


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.