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
شماره تماس: ۳۳۲۵-۴۰۵—۰۹۱۹

 

درباره نویسنده

5 دیدگاه

  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 قرار داره

    1. محمودی

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

  2. far

    سلام
    برا محدودیت حداکثر زمان و حذف زیر تور چگونه باید کد نویسی کرد

    1. محمودی

      حذف زیر تور برای هر مسئله متفاوته. باید مسائل و محدودیت های مشابه رو چک کنین. بعد برین سراغ کدش.

دیدگاهی دارید؟