Пожалуйста, извините за длинный вопрос, просто нужно какое-то объяснение, чтобы приступить к актуальной проблеме. Те, кто знаком с упомянутыми алгоритмами, вероятно, могут сразу перейти к первому симплексному таблау.
Для решения задач наименьшего абсолютного отклонения (или -оптимизация) алгоритм Барродейла-Робертса является симплексным методом специального назначения, который требует гораздо меньших затрат памяти и вычислительных усилий для поиска подходящего минимума.
Моя реализация алгоритма заканчивается простым примером, прежде чем будет достигнут необходимый минимум. Однако, возможно, позвольте мне сначала сформулировать проблему более подробно:
Учитывая данные , -оптимизация пытается найти который минимизирует где - матрица которая каким-то образом зависит от . Эта проблема может быть сформулирована как линейная программа и, следовательно, среди прочего, может быть решена с использованием симплекс-подобных методов.
Барродейл и Робертс предложили (по-видимому, широко используемую) модификацию симплекс-метода, которая радикально упрощает симплекс-метод, используя специальную структуру -задач. В частности, это то, что оптимальное решение интерполирует по крайней мере заданных точек данных. Те, у кого есть доступ к Jstor, могут найти соответствующую статью здесь .
Лей и Андерсон в 2002 году предложили небольшую модификацию, которая должна повысить числовую стабильность и, следовательно, преодолеть известные проблемы с помощью симплексного алгоритма.
По сути, этот алгоритм предполагает, что вы начинаете с заданного набора точек, которые должны быть интерполированы, используете данные процедуры для построения симплексной таблицы, а затем используете правила Барродейла и Робертса, чтобы решить, какие базисные переменные изменить, и, следовательно, изменить набор точек данных, которые являются приблизительными.
Барродейл и Робертс приводят небольшой пример, который я пытался воспроизвести. Он пытается аппроксимировать точки функцией . Завершите свой алгоритм следующей сжатой симплекс-таблицей:
Самое главное, что первая и третья точки интерполируются, а общая ошибка равна . Они заключают, что
Поскольку все неосновные векторы имеют неположительные предельные издержки [...]
итерация закончена и оптимальное значение достигнуто.
Если я использую алгоритм Лея и Андерсона, я могу воспроизвести эту симплекс-таблицу для набора интерполяции {1,3}, как и ожидалось. Однако, если я запускаю алгоритм с набором (что явно не оптимально), я получаю следующую симплексную таблицу:
Этот результат меня озадачивает. Если я правильно понимаю приведенную выше цитату, отсутствие положительных предельных издержек означает достижение оптимального значения. Хотя значение функции около 2,33, безусловно, не является оптимальным. Замена на дала бы результат, который находится на одном уровне с решением Барродейла и Робертса и поэтому оптимален.
Дополнительная информация: Если я начну с исходной таблицы, приведенной Барродейлом и Робертсом, я также смогу воспроизвести приведенную выше таблицу обычными симплексными шагами, поэтому я довольно уверен, что фактические числовые значения верны, и моя интерпретация правила выбора сводной таблицы неисправен.
Есть мысли по этому поводу?
Я понимаю, что сам вопрос довольно сложен и, вероятно, требует достаточного знания хотя бы алгоритма Барродейла и Робертса. Алгоритм в целом состоит в том, чтобы долго повторять его здесь в деталях. Однако, если у вас есть дополнительные вопросы о шагах, которые я предпринял, или о пропущенных фрагментах информации, не стесняйтесь спрашивать, и я с удовольствием дополню вопрос.
Ответы:
Решил это. На самом деле Барродейл и Робертс решили это, и я просто не читал внимательно.
В своем вопросе я оставил читателю понять, что переменные Барродейла и Робертса, помеченные обозначают положительные невязки datapoint по отношению к текущей подгонке. Если остаток отрицателен, и принимает соответствующее значение. Поскольку в базисе может находиться только один из них, а коэффициенты в симплекс-таблице являются просто отрицаниями друг друга, нет необходимости явно указывать их в симплекс-таблице. Барродейл и Робертс упоминают в своей статье:ui i ui=0 vi
Таким образом, моя приведенная выше симплексная таблица должна выглядеть следующим образом:
где мы ясно видим, что может быть введен в базу для архивации лучшего результата. Делая это, алгоритм завершает работу при интерполяции первого и пятого точек данных с общей ошибкой 2, что является наилучшим решением.v2
Спасибо за чтение и за то, что дали мне место, чтобы записать мою проблему, что обычно помогает значительно сузить решение. Надеюсь, этот ответ иногда может быть полезен для всех, кто пытается внедрить Barrodale & Roberts.
источник