2013-11-26 3 views
0

Я пытаюсь реализовать разложение Benders как подход к решению проблемы в C++ API. Между тем, я использую функцию «getRay», чтобы получить экстремальные направления двойной подзадачи, чтобы построить выполнимость в расслабленной основной проблеме. Способ, которым я использую функцию getRay, выглядит следующим образом.Получение неограниченного направления в C++ API

IloNumVarArray var(env); 
IloNumArray val(env); 
cplex.getRay(val, var); 

Я заканчиваю экстремальными направлениями в массивах var/val. Моя принципиальная проблема связана с тем, как использовать функцию getRay. Насколько мне известно, «getRay» заполняет этот IloNumVarArray переменными, отличными от нуля в крайнем направлении, и соответствующие значения этих переменных будут в IloNumArray. Порядок элементов в массиве, возвращаемых методом getRay(), не указан. Кроме того, он возвращает только ненулевые значения неограниченного. Я не знаю, как сопоставить каждое экстремальное направление с соответствующим выражением в разрешении выполнимости. В частности, я знаю, как построить мою выполнимость, уменьшенную значениями в массивах val и var! Мне было интересно, понравится ли кто-нибудь мне. С уважением

+0

В вашем сообщении недостаточно информации, чтобы рассказать вам, что происходит. Используйте свой отладчик, чтобы отслеживать его, или опубликовать короткий, автономный фрагмент кода, который воспроизводит вашу проблему. – Mat

+0

На самом деле, мне трудно использовать функцию getRay. Не могли бы вы сообщить мне, какая часть неясна? – user3000538

+0

Несколько строк, объясняющих вашу формулировку, помогут. Что вы пытаетесь оптимизировать? Что представляют собой переменные и индексы? И если возможно, поделитесь точным текстом ошибки, который вы получаете. Тогда кто-то может помочь. –

ответ

0

Я не знаю, какова ваша точная проблема, чтобы получить луч, вы должны сначала отключить предварительную обработку и использовать первобытный симплекс в качестве метода решения и использовать getRay. Вы можете обратиться к этому сообщению «http://orinanobworld.blogspot.com/2010/07/finding-extreme-rays-in-cplex.html». Надеюсь, это вам полезно.

Niraj

0

Я думаю, что вы ищете объясняется (с фрагментами кода) в this post.

Смежные вопросы