Определение ограничения R - пакет решателя CVXR

У нас есть следующая проблема: у нас есть таблица с семью столбцами, которая содержит комбинацию числовых переменных. Наша цель - сохранить только подмножество строк для оптимизации суммы каждого столбца.

Пример таблицы примеров:

Как вы можете видеть из кода ниже, мы используем решатель (из пакета CVXR).

Что мы хотим найти: Для этой задачи мы хотим использовать некоторые ограничения. Например, сумма выходного столбца (например, 5-го столбца) должна быть больше, чем сумма 6-го столбца или числа.

Когда мы пытаемся определить это ограничение, мы получаем следующую ошибку:

Ошибка в (функция (классы, fdef, mtable): невозможно найти унаследованный метод для функции "переменные" для сигнатуры "логический"

Не могли бы вы привести пример того, как мы можем выразить ограничение, чтобы избежать ошибки?

library(CVXR)

# M is the matrix of the example table
M[is.na(M)] <- 0 
M <- as.matrix(M) 
n <- nrow(M) 
b <- Bool(n) 
pred <- t(b) %*% M 

# This array stores the preferable output sums of each column
y <- c(0,0,0,0,12,5,1) 

# The objective
objective <- Minimize(sum(abs(t(y) - pred))) 

# Constraint example
constraint1 <- sum(pred@rh_exp@value[,5]) >= 10
constraint2 <- sum(pred@rh_exp@value[,6]) >= 0

# Problem
problem <- Problem((objective), constraints = list(constraint1, constraint2))

0 ответов

Другие вопросы по тегам