Использование переменной в качестве верхней границы суммирования (varA = sum (i $ (ord (i) ‹varA), X (i)))

Мне нужно рассматривать «время трафика» в разные периоды времени как параметр в задаче VRP, поэтому уравнение выглядит следующим образом:

varA = sum(i$(ord(i)<varA),X(i)) + other terms

Можно ли написать такой код? Может ли GAMS или любое другое программное обеспечение справиться с таким ограничением?

Уравнение:


person Reza Ojaghi    schedule 26.05.2019    source источник
comment
Вы говорите, что вам нужно, чтобы время трафика было параметром, который изменяется со временем, т.е. вам нужно что-то вроде traffic_time[t], где t - период времени?   -  person LarrySnyder610    schedule 27.05.2019
comment
Да, точно...   -  person Reza Ojaghi    schedule 27.05.2019
comment
Это ограничение не имеет смысла. Если $ k $ фигурирует во второй сумме, почему? Как интерпретировать пределы суммирования в последней сумме? Что означают верхние индексы $ T $? Но главный вопрос в том, где вы застряли? Какой конкретно вопрос остается после ответа ниже?   -  person LarrySnyder610    schedule 27.05.2019
comment
большое спасибо, может быть мне стоит подумать над этим   -  person Reza Ojaghi    schedule 28.05.2019


Ответы (1)


Я не знаком с синтаксисом GAMS, но в AMPL вы бы сделали что-то вроде этого:

set T;                  # set of time periods
param traffic_time{T};  # traffic time in each time period

Тогда вы должны ссылаться на параметр времени трафика, например traffic_time[t] для t in T. Я уверен, что в GAMS есть нечто подобное. Это можно было бы назвать чем-то вроде «параметр, индексированный набором».

person LarrySnyder610    schedule 27.05.2019
comment
Я думаю, мне нужна дополнительная помощь, пожалуйста! предположим, что у нас есть это: f (x) = суммирование X, что x начинается с нуля до f (x), проблема заключается в верхней границе суммирования, которая в точности совпадает с функцией - person Reza Ojaghi; 27.05.2019
comment
Я не совсем понимаю, что ты имеешь в виду. Было бы полезно, если бы вы записали это алгебраически, а не словами. Если этот вопрос не связан с вашим вопросом о том, как индексировать параметр с помощью набора, вы можете опубликовать его как отдельный вопрос. - person LarrySnyder610; 27.05.2019
comment
Я прикрепил уравнение как изображение. - person Reza Ojaghi; 27.05.2019