GOOGLE ADS

понедельник, 11 апреля 2022 г.

Как иметь условия для ограничений?

Как я могу закодировать подобное ограничение в JUMP?

Предположим i,j,k,m, установлены индексы и связанные с ними заглавные буквы, например J.

x_{i,j,k,m'} + sum((j in J, k in K), y_{j,k,m})<= z_{i,m} for all i in I and for all m and m' in M; m!=m'

как на фото

введите описание изображения здесь


Решение проблемы

Я понимаю, что вам нужен многомерный цикл ограничений с фильтрацией. Я получаю это к минимальному рабочему примеру:

M=1:10
model = Model(HiGHS.Optimizer)
@variable(model, y[1:lenght(M),1:lenght(M)] >= 0)
z = rand(lenght(M))

Имея эти значения, вы можете иметь ограничение с фильтрацией как:

@constraint(model, [m1 in M, m2 in M], y[m1,m2] >= z[m1]*(m1!== m2))

Обратите внимание, что построение переменной as y[1:lenght(M),1:lenght(M)]создает обычное выражение Matrixwhile y[M,M], которое дает DenseAxisArray.

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

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...