Я пытаюсь решить проблему местоположения объекта, где у меня есть набор клиентов и набор потенциальных местоположений объекта.Хотя традиционная проблема является линейной, я преобразовал некоторые ограничения, и теперь у меня есть нелинейная проблема.
Я знаю, что существуют пакеты нелинейной оптимизации для Python, такие как SciPy, но я не понимаю, какЯ должен перебирать большие наборы.Могу ли я просто использовать цикл for для учета суммирования?И как мне учесть «для всех i в I» и «для всех j в J» в ограничении, как указано в следующем примере?
Цель: Макс: Z = ∑_i ∑_j (d_i* p_ij * a_ij * y_j)
Подлежит: p_ij = (u_ij * a_ij * y_j) / (∑_j (u_ij * a_ij * y_j)) ∀ i ∈ I, j ∈ J
y_j ∈ {0,1} ∀ j ∈ J
, где I - набор клиентов, а J - набор потенциальных местоположений объекта.д, а и у даны.p и y определяются моделью.
Может кто-нибудь объяснить мне, как использовать наборы в SciPy?Или, пожалуйста, пришлите мне пример кода с такой проблемой оптимизации, чтобы я мог видеть, как это делается.
Спасибо!