Задача NNLS:

где

- матрица размеров

на

,

В книге "Численное решение задач метода наименьших квадратов" Лоусона Ч. указан следующий алгоритм решения этой задачи (стр 124):
(

):
1. Положить

2. Вычислить

-вектор

3. Если множество

пусто или

для всех

, перейти к шагу 12
4. Найти индекс

такой, что

5. Переместить индекс

из множества

в множество

6. Пусть

-

-матрица, определяемая таким образом:
столбец

матрицы

= столбцу

матрицы

, если

,

иначе.
Вычислить

-вектор

как решение задачи наименьших квадратов

7. Если

для всех

, положить

и перейти к шагу 2
8. Найти индекс

такой, что

9. Положить

10. Положить

11. Переместить из множества

в множество

все индексы

, для которых

. Перейти к шагу 6.
12. Конец
Не понимаю как работает критерий окончания.
Если

пусто, это значит, что точка

является внутренней точкой для всех полупространств

. Почему из этого следует, что это точка минимума функционала?
Если

для всех

, то это значит, что для того, чтобы уменьшить невязку, придется выйти из допустимой области?
Почему переменная вводимая на шаге 5 будет не отрицательной? В книге написано
"Выбранный на шаге 4 индекс

указывает компоненту, не представленную пока в множестве

, которая в соответствии с леммой 23.17 будет положительна, если ее ввести в решение."
Лемма 23.17:
Пусть

матрица ранга

, а

-вектор, для которого


Если

- решение задачи

(в смысле задачи НК), то его

-я компонента

> 0
Для моих примеров условие для

не выполняется