Скажем, у меня есть линейная система с N
переменных, но у меня есть только N-1
уравнений (ограничения). Как я могу получить выполнимый набор (диапазон) для каждой из N переменных, используя R?Оптимизация решения с линейными ограничениями
Пример:
A <- matrix(data=c(0,1,0,1,0,1,0,1,
0,0,1,1,0,0,1,1,
0,0,0,0,1,1,1,1,
0,0,0,1,0,0,0,1,
0,0,0,0,0,1,0,1,
0,0,0,0,0,0,1,1,
1,1,1,1,1,1,1,1
),
ncol=8, byrow=T)
b <- matrix(data=c(0.2,0.4,0.6,0.06,0.18,0.12,1),
ncol=1)
> A
## [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
##[1,] 0 1 0 1 0 1 0 1
##[2,] 0 0 1 1 0 0 1 1
##[3,] 0 0 0 0 1 1 1 1
##[4,] 0 0 0 1 0 0 0 1
##[5,] 0 0 0 0 0 1 0 1
##[6,] 0 0 0 0 0 0 1 1
##[7,] 1 1 1 1 1 1 1 1
> b
## [,1]
##[1,] 0.20
##[2,] 0.40
##[3,] 0.60
##[4,] 0.06
##[5,] 0.18
##[6,] 0.12
##[7,] 1.00
Дополнительное ограничение: каждое значение должно быть possitive и должна быть в пределах от 0 до 1 (этот последний может быть опущен, так как последнее уравнение добавляет до 1 только с possitive значениями)
Такого рода проблемы могут быть решены с помощью статистических инструментов регуляризован- регрессия. Один из них - знаменитый LASSO. –