Foros del Web » Programando para Internet » PHP »

Maximizar ecuación en PHP

Estas en el tema de Maximizar ecuación en PHP en el foro de PHP en Foros del Web. Buenas, edito completamente el mensaje: Pretendo "emular" la opción "SOLVER" del excel en php. Es decir, algo en php para la optimización de una función ...
  #1 (permalink)  
Antiguo 16/08/2007, 03:14
 
Fecha de Ingreso: febrero-2005
Mensajes: 20
Antigüedad: 19 años, 2 meses
Puntos: 0
Maximizar ecuación en PHP

Buenas, edito completamente el mensaje:

Pretendo "emular" la opción "SOLVER" del excel en php. Es decir, algo en php para la optimización de una función cualquiera (ya sea maximizar o minimizar). Os pongo un ejemplo para que se vea claro.

Intento resolver problemas de maximización de la forma:


______________Recurso 1___Recurso 2___Recurso 3____Beneficio____Variables
Producto 1________A11________A12________A13________B1______ ___X1
Producto 2________A21________A22________A23________B2______ ___X2
Producto 3________A31________A32________A33________B3______ ___X3
Sumas de:________A41________A42________A43________FO

Cantidad de recursos disponibles:
Recurso 1: C1
Recurso 2: C2
Recurso 3: C3

Hay que maximizar FO=B1·X1+B2·X2+B3·X3.

Sujeto a:

A41=A11·X1+A21·X2+A31·X3
A42=A12·X1+A22·X2+A32·X3
A43=A13·X1+A23·X2+A33·X3

Y además:
C1>=A41
C2>=A42
C3>=A43

Y además:
X1=0 o X1=1
X2=0 o X2=1
X3=0 o X3=1


Donde B y C son constantes.

Se que es un poco lioso pero es por si alguien tiene alguna idea... Gracias!

Última edición por ZoItrix; 16/08/2007 a las 04:16
  #2 (permalink)  
Antiguo 16/08/2007, 04:19
 
Fecha de Ingreso: febrero-2005
Mensajes: 20
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: Maximizar ecuación en PHP

PD: He editado todo el mensaje poniendolo bien que antes estaba mal explicado.

Gracias de antemano!
  #3 (permalink)  
Antiguo 16/08/2007, 08:57
 
Fecha de Ingreso: septiembre-2006
Ubicación: Buenos Aires
Mensajes: 125
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: Maximizar ecuación en PHP

La solucion analitica seria hacer derivadas.
Lo que veo es que las condiciones (supongo que de una a la vez) te simplifican el problema.
Y además:
X1=0 o X1=1
X2=0 o X2=1
X3=0 o X3=1

Igualmente solucion general haria 3 bucles (uno dentro del otro)que recorran los posibles valores de x1,x2,x3 con saltos de exactitud que creas convenientes.
for....
for..
for..
en el ultimo for verificar si se cumple A41,A42,A43
si no se cumple los valores no sirven
si se cumple evaluar la funcion F0 y guardas el valor en un variable solo si el valor es mayor al anterior guardado y tambien guardar los valores de X1,x2,x3.

No es una buena idea hacerlo en PHP porque consume recursos pero.
  #4 (permalink)  
Antiguo 17/08/2007, 05:42
 
Fecha de Ingreso: febrero-2005
Mensajes: 20
Antigüedad: 19 años, 2 meses
Puntos: 0
Re: Maximizar ecuación en PHP

Buenas,

Intenté hacerlo por fuerza bruta. Es decir, calculé una matriz con todas las posibles combinaciones de las tres variables:

En el caso de 3, sería:
000,001,010,011,100,101,110,111.

Y luego, para cada combinación posible, evaluar las restricciones, almacenar en otra tabla los valores que obtengo y maximizar entre todos los que obtenía teniendo la combinación óptima.

El problema es que para 16 productos y 8 recursos, en localhost tardaba más del tiempo máximo de espera (los 30 segundos) y en un servidor remoto no me dejaba construir matrices tan grandes (creo que ese era el fallo que daba).

Voy a probar lo de los tres bucles. Así evitaría seguramente lo del tamaño pero supongo que el tiempo de procesado sería muy alto.

Ya se que el servidor ralentiza demasiado pero es por simple curiosidad para ver si era capaz de hacerlo xD.

Muchas gracias por la respuesta! Ya comentaré que ha resultado!

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:32.