Jorge,

a la hora de modelizar tu problema,
es posible que te resultó más natural escribir tus variables con el   
formato de una matriz (x_ij ).
Sin embargo, la formalización estándar para implementar el modelo de  
programación lineal es considerar el conjunto de variables como un  
vector.
De ahí, el origen de tu problema y las pautas que vienen en el  
mensaje de Luis, solucionan tu problema de traducción de un formato  
al otro.

Un saludo. Olivier

--  
____________________________________

Olivier G. Nuñez
Email: onunez@unex.es
http://kolmogorov.unex.es/~onunez
Tel : +34 663 03 69 09
Departamento de Matemáticas
Universidad de Extremadura

____________________________________





El 14/11/2012, a las 12:52, Jorge I Velez escribió:

> Luis, Olivier y Carlos,
>
> Muchas gracias por sus respuestas.
>
> He intentado, sin exito, trabajar con lp() en "lpSolve".  Este es  
> un ejemplo:
>
> require(lpSolve)
> set.seed(123)
> (C <- matrix(trunc(runif(12, 2, 20)), ncol = 3, byrow = TRUE))
> (W <- matrix(runif(12), ncol = 3, byrow = TRUE))
> (k <- 7.1*pi)
> (filas <- c(30, 20, 30, 40))
> (columnas <- c(50, 30, 40))
>
> # restricciones
> (f.obj <- c(C))
> f.dir <- rep("==", NROW(C) + NROW(W))
> f.rhs <- c(filas, rep(k, NROW(W)))
> res <- lp("min", f.obj, f.con, f.dir, f.rhs)
> matrix(res$solution, ncol = ncol(C), byrow = TRUE)
>
>
> Las preguntas que tengo son:  1.  por que obtengo un warning() y 2.  
> como incluir la restriccion de las columnas.  De antemano agradezco  
> nuevamente su ayuda.
>
> Saludos,
> Jorge.-
>
>
> 2012/11/14 Luis Mariano Esteban <>
> Hola Jorge,
> como bien dice Olivier, lp.transport resuelve solo un caso  
> particular de programación lineal, al igual que lp.assign, la  
> función general para ese tipo de problemas es lp(), tienes que  
> especificar el vector de los coeficientes de coste de la función  
> objetivo objective.in<-c(), el vector de disponibilidad de recursos  
> const.rhs<-c(), la matriz de los coeficientes de las restricciones  
> const.mat<-matrix() y el vector de direcciones de las restricciones  
> const.dir<-c()
>
> Por cierto en tu problema has puesto todas las restricciones del  
> tipo menor o igual para un problema de minimización y eso te da  
> solución 0 si los coeficientes son positivos, con lp() puedes poner 
> cualquier signo en las desigualdades.
>
> Un saludo
>
>
> El 14 de noviembre de 2012 09:57, "Olivier Nuñez" <> escribió:
>
> Jorge,
>
> deberías utilizar más bien la función lp(),
> que creo abarca tu modelo de programación lineal.
> Si C es la matriz de coeficientes de tus primeras restricciones y W  
> la matriz de
> coeficientes de tus restricciones adicionales, entonces la matriz  
> de coeficientes de
> la función lp denotada const.mat debería simplemente ser igual a
>
> const.mat=rbind(C,W)
>
> Un saludo. Olivier
>
> > Hola a todos,
> >
> > Estoy trabajando con programacion lineal; el siguiente ejemplo  
> ilustra lo
> > que quiero hacer.  Desafortunadamente usando la funcion  
> lp.transport en
> > "lpSolve" puedo incorporar todas las restricciones, excepto las  
> que llamo
> > "restricciones adicionales". Alguna sugerencia sobre como estimar  
> los
> > valores de x11, x12, ... x44 en R incluyendo *todas* las  
> restricciones?
> >
> > Muchisimas gracias,
> > Jorge.-
> >
> >
> > # 1. Matriz de costos definida por "costos"
> >
> > # 2. totales
> > filas <- c(50, 30, 40)
> > columnas <- c(30, 20, 30, 40)
> >
> > # funcion objetivo
> > # x_{i,j}:  corresponde al total de recursos que van del lugar i  
> al j
> > min c11*x11 + c12*x12 + c13*x13 + ... + c44*x44
> >      con c_{i,j} la ij-esima entrada de la matriz costos definida
> > previamente
> >
> > # recursos por filas
> > x11 + x12 + x13 + x14 <= 50
> > x21 + x22 + x23 + x24 <= 30
> > x31 + x32 + x33 + x34 <= 40
> >
> > # recursos por columna
> > x11 + x21 + x31 <= 20
> > x21 + x22 + x32 <= 10
> > x13 + x23 + x33 <= 30
> > x14 + x24 + x34 <= 30
> >
> > # las variables deben ser mayores o iguales a cero
> > x_{i,j} >= 0, i = 1, 2, 3, 4 and j = 1, 2, 3
> >
> >  # restricciones adicionales
> > # 1. El numero de x_{i,j} por columna con valores debe ser mayor a 1
> > # 2. si w_{i,j} es una constante, i.e., W <- matrix(runif(12), 4, 3)
> > #    y k es conocido
> > w11*x11 + w12*x12 + w13*x13 + w14*x14 <= k
> > w21*x21 + w22*x22 + w23*x23 + w24*x24 <= k
> > w31*x31 + w32*x32 + w33*x33 + w34*x34 <= k
> > w41*x41 + w42*x42 + w43*x43 + w44*x44 <= k
> >
> >       [[alternative HTML version deleted]]
> >
> > _______________________________________________
> > R-help-es mailing list
> > R-help-es@r-project.org
> > https://stat.ethz.ch/mailman/listinfo/r-help-es
> >
>
>
> --
> ____________________________________
>
>
> Olivier G. Nuñez
> Email: onunez@unex.es
> http://kolmogorov.unex.es/~onunez
> Tel : +34 663 03 69 09
> Departamento de Matemáticas
> Universidad de Extremadura
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>
>
>
>
> -- 
> Luis Mariano Esteban Escaño
> Escuela Universitaria Politécnica de La Almunia
> Tlfno. 976600883 Ext.121
> C/ Mayor s/n 50100 La Almunia de Doña Godina
> Universidad de Zaragoza
>
>


	[[alternative HTML version deleted]]

