Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R中带遗传算法的广义指派问题_R_Genetic Algorithm_Integer Programming - Fatal编程技术网

R中带遗传算法的广义指派问题

R中带遗传算法的广义指派问题,r,genetic-algorithm,integer-programming,R,Genetic Algorithm,Integer Programming,如何实现一个广义指派问题:在R 我有一个代码的工作示例,但它不工作: require(GA) p <- matrix(c(5, 1, 5, 1, 5, 5, 5, 5, 1), nrow = 3) t <- c(2, 2, 2) w <- c(2, 2, 2) assigment <- function(x) { f <- sum(x * p) penalty1 <- sum(w)*(sum(t)-sum(w*x)) penalty2 <

如何实现一个广义指派问题:在R

我有一个代码的工作示例,但它不工作:

require(GA)
p <- matrix(c(5, 1, 5, 1, 5, 5, 5, 5, 1), nrow = 3)
t <- c(2, 2, 2) 
w <- c(2, 2, 2)

assigment <- function(x) {
  f <- sum(x * p)
  penalty1 <- sum(w)*(sum(t)-sum(w*x))
  penalty2 <- sum(w)*(1-sum(x))
  f - penalty1 - penalty2  
}  

GA <- ga(type = "binary", fitness = assigment, nBits = length(p),
       maxiter = 1000, run = 200, popSize = 20)
summary(GA) 
require(GA)

p您对适应度函数(即
assignment()
函数)的定义似乎存在问题

  • x
    是一个二进制向量,而不是理论上的矩阵,因此
    sum(x*p)
    没有达到您可能期望的效果(注意
    x
    的长度为9,
    p
    在您的示例中是一个3x3矩阵)
  • penalty2
    项未正确考虑x{ij}和的约束
  • 对于
    penalty1
    penalty2
    ,惩罚应该采取不同的行动,第一个是不平等(即,你看过这些出版物吗?谷歌搜索揭示了更多优化/专业的GA实施。