Пожалуйста, смотрите прикрепленный код
A <- matrix(c(1,1,1,-1,1,-1,2,3,-1,2,-1,-2),nrow = 4,byrow = TRUE)
b <- matrix(c(0,5,2,4),nrow = 4)
beta <- c(0,5,3)
r <- nrow(A)
iTBD <- 2
s <- seq_len(r)[-i]
for(iWs in s){
Aq <- A[iWs, ,drop=FALSE]
print(Aq)
bq <- b[iWs, ,drop=FALSE]
m <- nrow(Aq)
is.ind <- sum(Aq%*%beta) == sum(bq)
print(iWs)
print(is.ind)
if(is.ind) break
}
Я реализую алгоритм, где
1) Я должен выбрать каждую строку матрицы A, которой нет в iTBD, и
а) проверить, выполнено ли условие, затем прервать
б) если условие не выполняется, мне нужно создать все возможные разные
сочетание строк, таких как с (1,3), с (1,4), с (3,4) и запустить цикл for
еще раз, если условие выполнено, остановитесь на определенной комбинации строк
в) если (а) и (б) не сработали, тогда я должен взять полную комбинацию строк
с (1,3,4) и проверить состояние
если (1) не удовлетворяет условию, перейдите к шагу (2)
2) Добавить iTBD к строкам и
a) возьмите комбинацию из 2 строк, отсутствующую в (1.a), и проверьте, что условие выполнено, если
не переходите к шагу b ниже
b) возьмите все комбинации из 3 строк, которых нет в (1.c), и проверьте условие
встретились, если не перейти к шагу c белво
в) взять полную матрицу А и проверить условие
У меня проблема в том, как я могу использовать комбинацию в цикле? Я имею в виду сначала взять каждую строку отдельно, затем взять комбинацию из 2 строк и так далее, пока не будет выполнено условие?
Спасибо