стоимостная минимизация сплайна с линейно фиксированными точками

Посмотрим, смогу ли я адекватно описать эту проблему без картинок.

Допустим, у меня есть две переменные, которые линейно влияют на скорость, a и b. При увеличении а скорость возрастает линейно, и наоборот. То же самое относится и к b- по мере его увеличения скорость увеличивается линейно, и наоборот. Теперь предположим, что скорость во времени уже определена и представляет собой хороший гладкий сплайн, назовем его v(t). Мы также знаем, что в данный момент времени v = f(a,b), где f — некоторая базовая линейная функция, определяющая v из a и b. Наконец, у нас есть некоторая функция стоимости c(a,b,t), которая определяет стоимость в определенное время и значения a и b.

Я пытаюсь построить минимизирующий стоимость сплайн, где каждая точка определяет a и b в определенный момент времени, с жестким условием, что f(a,b,t) = v(t) для всех моментов времени, и мягкое условие, при котором мы пытаемся минимизировать c(a,b,t). Если вы сгладите это до двух измерений, с a на одной оси и b на другой, в течение определенного времени, вы увидите, что для того, чтобы удовлетворить жесткому ограничению, есть некоторая линия в плоскости a-b, которую мы должны быть, но где на этой линии мы должны разместить точку, зависит от функции стоимости.

Если бы функция стоимости была простой, решить эту задачу было бы относительно легко: для каждого t достаточно определить a и b так, чтобы минимизировать стоимость, и готово. Однако возможно внезапное изменение стоимости на границах удержания (например, для t >= 5 стоимость a ‹ 0,6 резко возрастает), и я хотел бы, чтобы мой сплайн предвидел это и начал увеличивать a до того, как мы доберемся до t = 5, чтобы сгладить ситуацию.

Меня ломает то, что все формулы сплайнов, которые я могу найти, требуют фиксированных точек в n-пространстве. Они могут не проходить через эти точки, но они им нужны. В моем случае не требуется, чтобы сплайн проходил через определенную точку в [a,b,t], но требует, чтобы они проходили через линию для определенного значения t (остальное — минимизация). Есть ли способ упростить эту задачу до простого сплайна, рассматривая производные и т. д.?

В этой статье описывается, как решить аналогичную проблему, но, похоже, требуется, чтобы сплайн лучше всего подходил по точкам, а не по линиям. http://www.cs.berkeley.edu/~ravir/dspline.pdf

Спасибо за любую помощь, которую вы можете предоставить.


person dbromberg    schedule 04.10.2013    source источник


Ответы (1)


Возможно, я понял это сам. Поскольку я могу в любой момент времени, t, при заданном a, легко найти b, при условии, что я знаю v(t), что сводит проблему к простому выбору «a», чтобы минимизировать c(a ,b) при любом заданном t. Я могу использовать процедуру по ссылке, которую я предоставил в тот момент, выбрав некоторое количество дискретных точек (просто найдите абсолютный минимум в каждой из этих точек) и позволив алгоритму выбрать остальные. Если я заранее знаю, где встречаются эти точки экстремального разрыва стоимости (а я знаю), я могу специально разместить там точки на локальных минимумах, чтобы намекнуть сплайну, что пораньше начать поворот.

Не уверен, что это имело смысл для кого-то, кроме меня. Наслаждаться.

person dbromberg    schedule 04.10.2013