۲

Error 198: Set used in ‘ord’ or lag is not ordered

سوال از آقای علی کریمی:

سلام. من دستور زیر رو می نویسم خطای ۱۹۸ رو میده


PMAXLIM(K,G,T)$(ord(T) GT 0)..p(K,G,T) =l= GDATA (G,'PMAX') * v(K,G,T);

میخوام شرط رو به جز برای T=0 اعمال کنه

پاسخ به سوال جناب کریمی،

سلام
این سوالی هست که برای خیلیا پیش میاد. دلیلش اینه که شما باید تو تعریف مجموعه T تجدید نظر کنین!
به دو مثال زیر توجه کتید:

Example 1:
SETS
i/ 0, 2, 4 /,
j/ 1, 3, 5 /,
T/ 0 * 5 /;

Example 2:
SETS
T/ 0 * 5 /,
i/ 0, 2, 4 /,
j/ 1, 3, 5 /;

تو مثال اول اگر از دستور ord برای اندیس T استفاده کنیم، چون قبل از اینکه اعضاش کاملا تعریف بشن، تو مجموعه های قبلیش همین اعضا به طور به هم ریخته تعریف شدن، پس وقتی از ord استفاده کنیم، منطقیه که ارور بده. اصولا تعریف ord همینه که از اولین مجموعه شروع به تخصیص اعداد میکنه.
این مشکل تو مجموعه دوم رفع شده

ایمیل: Support@gamsbook.ir
شماره تماس: ۳۳۲۵-۴۰۵—۰۹۱۹

 

2 دیدگاه در “Error 198: Set used in ‘ord’ or lag is not ordered

  1. با سلام
    من یک محدودیت دارم که خطای ۱۹۸ می دهد
    ((control2(j,t).. y(j,t)=e=y(j,t-1)+sum(l,x(l,t-2))-sum(l,x(l,t
    مجموعه های j,t,l نیز از ۱ به بعد تعریف شده اند. ممکنه علت این باشه که در مرحله اول، t-2 و t-1 یک عدد منفی میشه؟
    این خطا دقیقا در زیر دو عبارت t-2 و t-1 قرار داره

    • سلام
      در مرحله اول شما باید روی اینکه آیا Y1 و Y0 و X1 و X0 داریم یا خیر فکر کنید.
      در این نوع محدودیت ها معمولا یک صحبتی در مورد مقادیر اولیه این متغیر ها می شود.
      مثلا در مدل های تولیدی یا موجودی ما یک متغیر به اسم موجودی هر دوره یا I داریم. ما دوره ها رو از یک تعریف میکنیم ولی قطعا به مقدار I در دوره ی صفر هم داریم.
      این ها رو جواب بدید صحبت می کنیم در مورد چگونگی محدودیت

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *