Сложная целевая функция без переменных

#python #cplex #docplex

Вопрос:

Моя проблема не требует, чтобы переменные находились непосредственно в объектной функции, только соответствующие данные. Поэтому, если я не помещу туда переменные, целевая функция не будет иметь связи с переменными, и модель не будет работать должным образом, но если я помещу ее туда, значения переменных будут мешать моей функции. Есть ли лучший способ сделать это?

Это моя целевая функция: сумма (r[i] * v[i]), где r[i] является возвращаемым значением данной переменной x[i], и то же самое относится к v[i], но вместо возврата это дисперсия

Где r-доходность, а v-отклонения.

Код, который у меня есть до сих пор:

 model = Model()
x = model.continuous_var_dict(keys, name='invs')
model.maximize(model.sum(x[i] * (return_dict[i] / var_dict[i]) for i in x.keys()))
 

Любая помощь будет признательна!

Комментарии:

1. Во-первых: когда вы говорите, что «модель работает неправильно», если вы не включаете переменные в цель, что происходит? Получаете ли вы доказуемо неправильные ответы или ошибки? Во-вторых: каким образом добавление переменных в цель «мешает» вашей функции? Если вы не пытаетесь что-то максимизировать или минимизировать, то что вы пытаетесь решить?

2. Может ли пример на towardsdatascience.com/stock-portfolio-optimization-d1dc66c7251 помочь ?