2013-04-13 37 views
6

Tôi đang tìm kiếm một gói R đẹp để giải các mô hình lập trình tuyến tính. Tôi khá hài lòng với mặc định lpSolve::lp, nhưng không có cách nào để có được bóng tối và giảm giá. Tôi cần những điều này, cùng với những ràng buộc tích hợp.R để giải quyết các vấn đề lập trình tuyến tính

mô hình mẫu:

A = rbind(
    c(0.5, 0.2, 0.2), 
    c(-1, 1, 0), 
    c( 0, 1, -1), 
    c(-1, -1, -1), 
    c(-1, 0, 0), 
    c( 0, -1, 0), 
    c( 0, 0, -1) 
) 
b = c(5, 0, 0, -13, 0, 0, 0) 
c_ = c(8.4, 6, 9.2) 
(signs = c('=', rep('<=', 6))) 

res = lpSolve::lp('min', c_, A, signs, b, all.int = TRUE) 

# Objective function 
res 
# Variables 
res$solution 

# Shadow prices??? 
# Reduced prices??? 
+1

Xin lỗi, bóng tối và giá giảm là gì? – Arun

+0

@Đó là biến kép - hãy xem http://en.wikipedia.org/wiki/Shadow_price – mreq

+2

Trang 4 trong [** tài liệu này **] (http://cran.r-project.org/web/packages /lpSolve/lpSolve.pdf) nói về 'các giá trị kép' cho các ràng buộc. Đây có phải là những gì bạn đang tìm kiếm không? – Arun

Trả lời

3

Như đã nói trong phần nhận xét, page 4 of the documentation nói về điều này. Dưới đây là một trích đoạn từ tài liệu:

# Get sensitivities 
lp ("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$sens.coef.from 
## Not run: [1] -1e+30 2e+00 -1e+30 
lp ("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$sens.coef.to 
## Not run: [1] 4.50e+00 1.00e+30 1.35e+01 

# Right now the dual values for the constraints and the variables are 
# combined, constraints coming first. So in this example... 

lp ("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$duals 
## Not run: [1] 4.5 0.0 -3.5 0.0 -10.5 

# ...the duals of the constraints are 4.5 and 0, and of the variables, 
# -3.5, 0.0, -10.5. Here are the lower and upper limits on these: 

lp ("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$duals.from 
## Not run: [1] 0e+00 -1e+30 -1e+30 -1e+30 -6e+00 
lp ("max", f.obj, f.con, f.dir, f.rhs, compute.sens=TRUE)$duals.to 
## Not run: [1] 1.5e+01 1.0e+30 3.0e+00 1.0e+30 3.0e+00 
+2

cho người đọc trong tương lai: khóa là' compute.sens = TRUE' – mreq

Các vấn đề liên quan