۲۷

Error 184 – Domain -list -redefined

ارور ۱۸۴ در گمز یکی دیگر از خطاهای مرسوم گمز است که برای اکثر کاربران پیش می‌آید و رفع آن هم معمولاً بسیار آسان است.
Error 184 همون طور که از عنوان تاپیک مشخص است به شکل زیر ظاهر می‌شود:

Error 184 - Domain list redefined


این پیغام به کاربر می‌گوید که “شما یک متغیر یا پارامتر را با دو ترکیب متفاوت از اندیس ها تعریف کرده اید”.
فرض کنید متغیر x را به شکل زیر تعریف کرده ایم:


variable x(i);
binary variable y(i),x(j);

فارغ از اینکه i و j چه اعضایی را شامل می شوند و نوع متغیر ما به چه شکل است، مفهوم ارور فوق این است که شما متغیر x را با دو اندیس مختلف تعریف نموده اید. رفع این ارور به شکل زیر است.
رفع خطای ۱۸۴
در مثال بالا، برای رفع این خطا می توان x ها را به x1 و x2 تغییر نام داد. بدین شکل مشکلی که قبلاً داشتیم به سادگی رفع خواهد شد.

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

 

27 دیدگاه در “Error 184 – Domain -list -redefined

  1. سلام
    من توی مدلم برای محاسبه هزینه نگهداری معادله زیر رو تعریف کردم:

    LM(i,m,t)=E(i,m,t)+K(i,m,t-1)-sum(w,XM(i,m,w,b,t))

    ک در این عبارت LM موجودی دوره t و E میزان تولید و XM مقدار ارسالی به مراکز توزیع هست.
    K موجودی باقی مانده از دوره قبل هست که به ازای t=t1 برابر صفر و به ازای t های بزرگتر برابر با LM دوره ی قبله.
    لطفا راهنماییم کنین که چطور K و LM و این معادله رو تو گمز تعریف کنم.
    ممنون

    • سلام
      برای دوره اول رو یه معادله بنویسین، و برای دوره های بعدی یه معادله دیگه. برای راحتی کار k مربوط به دوره اول رو بذارین k0 و رابطه k یا lm رو باهاش با یه فرمول دیگه مشخص کنین

        • سلام
          بستگی داره t رو چجوری تعریف کرده باشین. و کجا بهش نیاز داشته باشین. مثلا تو یه محدودیت یه متغیر اندیسش این شکلی بشه، ممکنه شما ساده t-1 بنویسین و قبول کنه

  2. با سلام. در حال نوشتن کدی هستم که در ابتدای کار با خطا مواجه میشم. و چون اشنایی کافی با گمز ندارم نمی دونم مشکل از کجاست. ممنون میشم کمکم کنید.

    set
    i /1*25/
    x(i,i)
    x(i,i,i,i);

  3. l index set of locations/l1, l2, l3, l4, l5, l6, l7, l8
    /
    Alias(l,i);
    table d(l,i) distance between two locations
    l1 l2 l3 l4 l5 l6 l7 l8
    l1 1 2 1 2 3 2 3
    l2 1 1 2 1 2 3 2
    l3 2 1 3 2 1 4 3
    l4 1 2 3 1 2 1 2
    l5 2 1 2 1 1 2 1
    l6 3 2 1 2 1 3 2
    l7 2 3 4 1 2 3 1
    l8 3 2 3 2 1 2 1 0 ;

    کد من ارور ۱۷۰ و ۱۸۴ میزنه چرا میشه راهنمایی کنید؟

  4. سلام ارور ۸۰۲، برای چیه؟ تایع هدفم این ارور رو میده :
    variable type not allowed in logic equation

    درصورتی که من فق z رو به عنوان variable تعرییف کردم
    ممنونم.

  5. سلام کد من این ارور رو داره :

    equ2(j).. sum(i $ ord(i)<= card(i-1) , 2*t(i)*a(i,j)*y(j))+sum(i $ ord(i)<= card(i) ,(t(i)*a(i,j)*y(j)))+r(j)+s(j)=l= Tmax;

    ارور ۱۰ و ۸ میگیره

    expected"("
    expected ","
    نمیدونم چرا

  6. باسلام
    ممنون از سایت خوبتون

    من کدی نوشتم که در مرحله ران کردن ارور نقض دامنه رو اعلام میکنه . domain violation میشه لطفا راهنمایی بفرمایید
    .
    .

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

  7. سلام
    من تو کدم یه محدودیت دارم که بخشیش اینطوریه:
    sum((i,r,t,w),hr(i,r)*(card(t)-t)*X(i,w,r,t))
    اما هر جایی که عبارت (card(t)-t) هست ارور ۱۴۸ و ۱۳۳ میده.
    ممنون میشم راهنماییم کنین.

    • سلام
      شما t خالی نمیتونین بذارین. یا باید ord(t) یا pos(t) یا t.uel بذارین. بسته به اینکه t رو چجوری تعریف کردین جوابتون متفاوته.
      مجموعه ی t رو چجوری تعریف کردین؟

        • خواهش میکنم.
          پس شما وقتی تو دستور set دارین مجموعه ها رو تعریف میکنین، اول t رو تعریف کنین. بعد بقیه رو. بعد تو این محدودیتی که فرمودین به جای اون t خالی، بذارین t.uel
          مشکل حل میشه، مگه اینکه باز ارورای جداگونه ای هم داشته باشه

        • سلام
          کاری که گفتین رو انجام دادم و اون مشکل حل شد. ممنونم
          اما وقتی ران میگیرم همچین اروری میده:
          Terminated due to systems error in procCheck-2
          Inspect listing file for more information
          ممنون میشم راهنماییم کنین

      • final robust.gms(301) 3 Mb
        .pard.inc(12) 3 Mb
        final robust.gms (404) 3 Mb 1 error
        Terminated due to systems error in procCheck-2
        Inspect listing file for more information
        .
        .
        .
        opentext W=0 FN=”۲۲۵b\gamsnext.bat”
        Job final robust.gms Stop 05/06/17 11:34:22 elapsed 0:00:02.340
        Gams Exit Msg = ProcCheck-2
        Exit code = 8

        • سلام
          ادرس دهی شما احتمالا اشکال داره.
          بدون مشکل برای من حل شد. لطفا فایل پیوستی که براتون فرستادم رو ران کنین. ادرس دهی رو هم دقیق بزنین. من عکس از خروجی اولیه براتون گذاشتم. البته بدون محدودیت گپ.
          ضمنا برا جلوگیری از اینکه فایلهایی که این کد شما تولید میکنه با بقیه فایلهای دایرکتوری قاطی نشن، شما یه دایرکتوری جدید تو یه فولدر دیگه باید درست کنین.

پاسخ دهید

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