۸۲۴

خطاهای گمز

با اطمینان ۹۹ درصد تمامی کد نویسان گمز -از مبتدی گرفته تا فوق حرفه ای یا توسعه دهنده-
پس از Run کردن مدل خود، حداقل یک Error را مشاهده خواهند کرد.

خوشبختانه اکثر Error هایی که GAMS به کاربر می دهد با تغییرات بسیار ساده ای در کد نویسی رفع خواهند شد.
در این بخش قصد داریم خطاهای رایج و معمولی که دوستان در بخش های مختلف کامنت گذاشته اند، را به عنوان تاپیک های جداگانه ای مورد بحث قرار دهیم.
با ما همراه باشید

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

 

824 دیدگاه در “خطاهای گمز

  1. سلام ممنون از پاسختون
    من در کد زیر هم با ارور ۱۴۹ مواجه شدم، میشه بفرمایید ایراد در کدام قسمت بوده؟ ممنون
    constraint19(l,n,t)..sum(i,XL(i,l,t,s))+sum(m,XM(m,l,t,s))=l=Sa(l,n);

  2. سلام آقای محمودی وقت بخیر.تو دستور زیر چندتا سوال داشتم و اینکه خیلی کدش رو لازم دارم.ممنون میشم راهنمائی بفرمائید:

    Loop((u,j),
    fm(u)= round(uniform(fm.lo(j)=l= (1+k(j))*fb(j))
    fm.up(j)=g=(1-k(j))*fb(j)));
    k(j)= uniform ((fm(u)-f(j))/fb(j));
    fb(j) = sum(j,f(j)/majmu);
    ;(
    

    یک متغیر رندم دارم مثل fmکه به طور یکنواخت از بازه fm.lo(j)=l= (1+k(j))*fb(j))وfm.up(j)=g=(1-k(j))*fb(j)))مقدار میگیره. k(j)یک متغیر رندم هست که ازk(j)= uniform ((fm(u)-f(j))/fb(j) مقدار میگیره.روی .lo خطای ۱۴۱ و۱۷۲و۱۴۲ میده بایدlo رو قبلش رو پارامتر تعریف کنم؟تعریف هم کردم دوباره خطا میگیره.
    اصلا بخواهیم بگیم یک متغیر به طور رندم از بازه ای مقدار میگیره باید فرم بالا رو بنویسم؟سپاس فراوان.

    • سلام
      شما نمیتونین برای یه متغیر همچین محاسباتی بنویسین. فقط باید بگین که مثلا fm متغر مثبت هست، و حد بالا و حد پایین براش بذارین.
      دقت کنین که متغیر رندم نداریم. فقط پارامتر رندم داریم. ویژگی هایی نظیر .lo.fx,.up فقط برای متغیر استفاده میشه

  3. با سلام و تشکر از سایت خوبتون
    این محدودیت که اینجا می فرستم ، مربوط به توالی کارها در مسئله job shop هستش
    و دو تا شرط رو باید با هم لحاظ کنه ولی ارور میده، ممنون میشم لطف بفرمائید راهنمایی
    کنید.

    CO13(t,k,i,j,f,g)$((O(i,k))and(ord(i)>= ord(j)) and (ord(f)  ord(g)))
                       and $((ord(i)> ord(j)) and (ord(f) eq ord(g))) ..
             keci*(1-Y(t,k,i,j,f,g))+ ST(t,k,j,f)- ST(t,k,i,g)=g= PT(t,k,i,g);
    
  4. با سلام و تشکر از سایت خوبتون
    این محدودیت که اینجا می فرستم ، مربوط به توالی کارها در مسئله job shop هستش
    و دو تا شرط رو باید با هم لحاظ کنه ولی ارور میده، ممنون میشم لطف بفرمائید راهنمایی
    کنید.
    CO13(t,k,i,j,f,g)$((O(i,k))and(ord(i)>= ord(j)) and (ord(f) ord(g)))
    and $((ord(i)> ord(j)) and (ord(f) eq ord(g))) ..
    keci*(1-Y(t,k,i,j,f,g))+ ST(t,k,j,f)- ST(t,k,i,g)=g= PT(t,k,i,g);

    نه اتفاقا به اون and قبل از شرط دوم ایراد میگیره، و میگه که نباید میبود و به صورت
    “..” یا ” :=”یا “$=” باید باشه ، ولی اونا رو هم که زدم بازم ارور میداد.

  5. سلام. وقتتون بخیر.
    یه سوال از خدمتتون داشتم. من این خطا رو روی سطر مربوط به دستور solve دارم. هر کار هم انجام میدم، رفع نمیشه. خیلی ممنون میشم اگر راهنماییم کنید
    Error 64: function called with non-constant argument

    • سلام
      شما یه فانکشن استفاده کردین که جلوش متغیره. مثلا fact(x . گمز انتظار داره x یه ورودی مشخص باشه، در حالی که متغیر تعریفش کردین و ارور میده.

  6. این هم دستور حل کردنم هست:
    Solve sizing using MINLP maximizing NPV;
    متغیر باینری دارم و از دستور ifthen هم تو تعریف یک تابع استفاده کردم.

پاسخ دهید

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