Мне нужно реализовать оператор if в качестве ограничения. Но мой код постоянно выдает ошибку.
'open_house [i]' - двоичная переменная (1 означает «открыт», а 0 означает «не открыт»).
'people_to_house [j , i] 'также является двоичной переменной (если person-j назначен для house-i, то это 1, в противном случае 0)
Я хочу сделать open_house [i]' равным 1, если (в каждом доме) сумма количества людей, назначенных этому дому, составляет не менее 1. Другими словами, если есть хотя бы 1 человек, назначенный на дом, то мы решаем открыть этот дом.
Следующий код AMPL дает мне синтаксическую ошибку. Как вы пишете операторы if-then внутри «предмета»?
subject to
if (open {i in house}: sum {j in people} people_to_house[j,i] >= 1) then open_house[i] = 1;