Исключение из IBM ILOG Concert: excel: диапазон имеет неправильный размер. это должна быть только 1 строка или 1 строка

#excel #range #size #cplex

#excel #диапазон #размер #cplex

Вопрос:

Как я могу решить эту ошибку? (Конкретное местоположение не указано)

«Исключение из IBM ILOG Concert: excel: диапазон имеет неправильный размер. это должна быть только 1 строка или 1 строка «.

Я прочитал свои данные из Excel. Я уже написал весь свой код во время чтения таблиц с несколькими строками или столбцами. Никогда не было проблем, теперь внезапно это появляется как проблема. Последний фрагмент кода, который я сделал, был следующим

 forall (d in decisions, o in orders, p in pieces, m in modes) (varcost[d] == (sum (o in orders, p in pieces, m in modes) volume[o]*cvarcalm[m]*distance[p]*z[d,o,p,m]));
  

поэтому я предполагаю, что это как-то связано с этим.

Вы можете найти мой полный код здесь:

https://1drv.ms/w/s !AmJYk6YmU7wu7RgwYjV9U-CqAF-d?e=B9hqbV

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

1. Привет, по крайней мере, вы можете поделиться небольшим образцом, который будет генерировать эту ошибку?

2. Я редактирую сообщение, чтобы вы могли видеть код, заранее спасибо

3. Понятия не имею. Возможно, вы могли бы поделиться .mod .dat и xls в community.ibm.com/community/user/datascience/home

4. Я немного переработал, и теперь проблема больше не в странной ошибке, но CPLEX просто не возвращает решение. Можете ли вы мне помочь с этим? Это новый код 1drv.ms/w/s ! AmJYk6YmU7wu7SA9I11EYhScW1n8?e= YtTjkN Это небольшая часть, которую я изменил. forall (d в решениях, o в заказах) p [d, o] deliverytime[o] == сумма (p в штуках, m в режимах) (время [p, m] * z [d, o, p, m]); forall (d в решениях, oв заказах) (p [d, o] <=0) => (p [d, o] == 0); forall (d в решениях, s в сценариях) (штрафная стоимость [d] == сумма (o в заказах) cp * p [d, o]);

Ответ №1:

итак, проблема, с которой вы сталкиваетесь, другая: вы не получаете никакого решения, и вам нужно понять, почему.

Если вы назовете свои ограничения, то CPLEX может помочь вам, предоставив послабления и конфликты, которые помогут вам.

Например

 dvar int x;
dvar int y;

subject to
{
  x==y;
  x!=y;
}
  

не дает никакого решения, тогда как

 dvar int x;
dvar int y;

subject to
{
  ct1:x==y;
  ct2:x!=y;
}
  

дает некоторую информацию о том, что существует конфликт между ct1 и ct2