Реализация дополнительных ограничений в R's nnls - PullRequest
3 голосов
/ 13 ноября 2011

Я использую интерфейс R к реализации Лоусона-Хансона NNLS алгоритма неотрицательных линейных наименьших квадратов, который решает || A x - b || ^ 2 с ограничением, что все элементывектора x ≥ 0. Это хорошо работает, но я хотел бы добавить дополнительные ограничения.Для меня интересны:

  1. , также минимизируйте «энергию» x: || A x - b || ^ 2 + m * || x || ^ 2
  2. минимизируйте«энергия в производной x» || A x - b || ^ 2 + m || H x || ^ 2, где H - сумма единиц и матрицы с -1 на первой недиагональной
  3. в общем, минимизировать || A x - b || ^ 2 + m || H x - f || ^ 2.

Есть ли способ уговорить nnls сделать этокаким-то умным способом решения проблем 1.-3.выше?Причина, по которой у меня есть надежда на это, заключается в том, что в статье Whitall et al (извините за платный доступ) есть небольшой отказ от комментариев, в котором утверждается, что "к счастью, NNLS можно принять изоригинальная форма выше для размещения чего-либо в задаче 3 ".

1 Ответ

3 голосов
/ 13 ноября 2011

Я так понимаю, это скаляр, верно?Рассмотрим простой случай m = 1;Вы можете обобщить для других значений m, задав H * = sqrt (m) H и f * = sqrt (m) f и используя метод решения, приведенный здесь.

Так что теперь вы пытаетесь минимизировать || A x - b || ^ 2 + || H x - f || ^ 2.

Пусть A * = [A '|H ']' и пусть b * = [b '|f ']' (т.е. сложить A сверху H и b сверху f) и решить исходную задачу о неотрицательных линейных наименьших квадратах на || A * x - b * || ^ 2 с ограничением, что всеэлементы вектора x ≥ 0.

...