Добрый день уважаемые участники форума.
Есть набор чисел(массив) b - 0..n. Известно, что, к примеру b[5]>b[4]. Есть упорядоченный(по убыванию) массив c. Есть несколько опорных точек, вида b[4]*c[4] = X, X заранее известно. Так же, для всех b и c выполняется неравенство b[i]*c[i]>b[i+1]*c[i+1]. Стоит задача, минимизировать числа из массива b, причем желательно, чтобы отклонение элементов массива c от начальных было минимально.
Для того чтобы все стало понятно приведу график.
Синим обозначен график построенный на основе элементов b
Красным - на основе c
И желтым обозначено произведение c[i]*b[i]
(Все с домножением на некоторые коэффициенты, чтобы можно было увидеть все 3 графика)
Необходимо максимально опустить синий график, при этом должен соблюдаться ряд условий, которые я указал выше, но еще раз скажу, другими словами.
Нам точно известен ряд точек на желтом графике, так же нам известно, что желтый график должен быть убывающим, т.е. b[i]*c[i]>b[i+1]*c[i+1] для всех i.
Начальное неравенство для всех b должно соблюдаться, т.е. к примеру b[1]<b[2]. Отклонение точек красного графика от начальных нежелательно, но, как видим при i = 8 и 9 без этого не обойтись, поскольку тогда не выполнится неравенство b[7]*c[7]>b[8]*c[8]>b[9]*c[9].
Симплекс, как я понимаю, тут неприменим, если воспользоваться метод градиентного спуска, то велика вероятность, что он где-нибудь застрянет.
Как лучше решить эту задачу?