Минимизировать стоимость в R - PullRequest
0 голосов
/ 17 февраля 2020

Хотелось бы свести к минимуму следующую функцию

cost=function(x){
  events=sum(x==1)
  rev = sum(df$rev[which(x==0)])*0.8

  costcomp1=tail(comp1$cost[which(comp1$Nevents<events)],1)

  costcomp2=tail(comp2$percentuale[which(comp2$k<=rev)],1)*rev+50000

  cost=costcomp1+costcomp2

  return(cost)
}

x должен быть двоичным вектором, потому что для каждого элемента, который я хочу выбрать поставщика для покупки,

head(comp2)
        k percentuale
1  800000      0.0500
2 1800000      0.0325
3 88888888888888      0.0200

head(comp1)
       Nevents  cost
1         1500 13000
2         1750 17000
3         2000 21000
4         2500 22500
5         3000 26000
6         3500 29000

Я пробовал optimize(cost,x), x=sample(c(0,1),nrow(df),replace = T), но это не работает. Это дает мне ошибку invalid function value in 'optimize'

1 Ответ

1 голос
/ 17 февраля 2020

Я думаю, что вам нужно может быть fminsearch

pracma::fminsearch

, и вы можете попробовать

pracma::fminsearch(cost,rep(0,nrow(df)))$fmin
...