Нулевое решение для целочисленного программирования - PullRequest
1 голос
/ 25 апреля 2019

Я новичок в программировании на R.Я пытаюсь сделать целочисленное программирование на R. Я получаю вывод как 0 для всех переменных решения, когда я использую int.vec.Может кто-нибудь, пожалуйста, помогите мне понять, почему это происходит.Ниже приведен мой код.

library(lpSolve)
f.obj=c(900,900,900,900,1800,1800,1800,1800)
f.con=matrix(c(3,0,0,0,6,0,0,0,                                                                       
    0,3,0,0,0,6,0,0,                                                                       
    0,0,3,0,0,0,6,0,                                                                       
    0,0,0,3,0,0,0,6,                                                                       
    1,0,0,0,0,0,0,0,                                                                       
    0,1,0,0,0,0,0,0,                                                                       
    0,0,1,0,0,0,0,0,                                                                       
    0,0,0,1,0,0,0,0,                                                                       
    0,0,0,0,1,0,0,0,                                                                       
    0,0,0,0,0,1,0,0,                                                                       
    0,0,0,0,0,0,1,0,                                                                       
    0,0,0,0,0,0,0,1,                                                                       
    1/13,1/19,1/24,1/15,0,0,0,0,                                                           
    0,0,0,0,1/13,1/19,1/24,1/15), ncol=8, byrow=TRUE)
f.dir=c("=","=","=","=","<=","<=","<=","<=","<=","<=","<=","<=","<=","<=")
f.rhs=c(2500,500,2500,500,650,1200,800,1200,650,1200,800,1200,100,100)
solution=lp("max",f.obj,f.con,f.dir,f.rhs,int.vec = 1:8)
solution$solution

Вывод:

#[1] 0 0 0 0 0 0 0 0

1 Ответ

0 голосов
/ 25 апреля 2019

Я думаю, что вы получаете все нули, потому что это единственное "целочисленное" решение.Состояние решения = 2, означающее, что проблема неосуществима.Если мы не требуем, чтобы первые четыре переменные были целочисленными, решение ненулевое:

solution=lp(direction = "max",f.obj,f.con,f.dir,f.rhs,int.vec = 5:8)

> solution$solution
[1]   1.3333333   0.6666667   1.3333333   0.6666667 416.0000000  83.0000000
[7] 416.0000000  83.0000000 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...