۳۰

Error 53: Endogenous $ operation not-allowed

سوال از جانب جناب موحد:
با سلام و تشکر بابت سایت خیلی خوبتون
من کد زیر رو میخوام اجرا کنه، ولی خطا میگیره و متوجه نمیشم مشکلش کجاست


; VARIABLES y, x
EQUATION
; first
; (first.. y =E= (x*x) $ (x 0
; x.LO = -10
; x.UP = 10
; /MODEL andre /ALL
; SOLVE andre USING DNLP MINIMIZING y


خطایی که میگیره اینه:

Endogenous $ operation not allowed

مرسی از راهنماییتون

پاسخ به سوال جناب موحد:
سلام
گمز شرطی که واسه متغیر x گذاشتین رو نمیفهمه. به عبارتی تقریبا بیشتر solverهای گمز شرطی که توض متغیر باشه قبول نمیکنن. فقط تعدادی از اونها قبول میکنن.
شما دو راه برای حل این مشکل دارید، اول اینکه شرط رو با یک یا چند محدودیت جایگذاری کنین.
و یا اینکه از تابع ifthen استفاده کنین و از solver هایی که این تابع رو میفهمن استفاده کنین. مثل sbb

ذوستان اگه در این رابطه سوال، نظر یا مطلب مفیدی دارن کامنت بذارن

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

 

30 دیدگاه در “Error 53: Endogenous $ operation not-allowed

  1. سوال: فقط ببخشید من اگه امکان داره یه مثال برای ifthen در این رابطه بزنین خیلی ممنون میشم. چون من هرچی گشتم نتونستم مثالی برای کنترل متغیر در معادلات (equations) پیدا کنم.
    ممنون از سایت خوبتون

  2. فقط یه اشکال میمونه اونم اینه که شما تو اپراتور $ لازم نیست جواب بعدی یعنی else رو بذارین و این خیلی کمک میکنه مثلا برای بررسی محدودیت. منم مشکلم درست تو همون جواب else هستش که کدم رو دچار اشکال میکنه. اگه یه راهنمایی بکنین خیلی کمک کردین. مرسی.

      • سلام.
        mut(t)$(i(t)-i(t-1)eq 1).. i(tp)$(ord(tp)gt ord(t) and ord(tp) lt ord(t)+mu) =e=i(tp-1);

        mut: minimum up time, i is a binary variable, tp is a set in same size with t and mu is a scalar.
        البته میدونم شرط داخل $ درست نیست، چون ‘i’ یک متغیر است. در واقع من یه چیزی شبیه شرط بالا رو می‌خوام که کاری با برقرار نبودن شرط نداشته باشه. فقط در صورت درست بودن شرط داخل $ این معادله برقرار باشه. ولی فکر کنم تو ifthen باید جواب ( در غیر این صورت ) را نیز به تابع بدهیم.

        ممنون مرسی.

        • تو این حالبتا دیگه باید ی خلاقیت تو مدلسازی به خرج بدین که این مشکل پیش نیاد. شاید لازم باشه یه سری متغیر جدید تعریف کنین یا محدودیت جدید یا اصلاح محدودیت…

    • سلام
      ارورهای شما خیلی بیشتر از این حرفاست.
      اولین ارور شما مربوط به اشتباه در به کار بردن ` و ‘ هست. شما باید از ” یا ‘ استفاده کنین…

      • خطایی که از من گرفته
        خطاهای endogenous
        و
        analyzing solve statement
        هست. گمز دیگه هیچ خطایی نگرفته. بقیه خطاها رو رفع کردم.
        چرا استفاده از “و” ایراد داره؟

      • خطای اول اینه:
        endogenous operand for * not allowed in linear models
        خطای دوم هم اینه:
        erors(s) in analuzing solve statement . more detail appears bellow the solve statement above.

        • سلام
          دومی که هیچی. اولی یعنی اینکه تو دستور solve مدل رو خطی فرض کردین، در حالی که بین دو متغیر شما علامت ضرب هست که مدل رو غیر خطی میکنه. nlp,dnlp,mip اینا ممکنه نوع مدل شما باشه

  3. باسلام.
    سوالم اینه که میخام محموعه s را تعریف کنم.که اعضای اون بین ماکسیمم دوتا معادله و مینیم دوتا معادله دیگر قرار دارد
    چنین محدودیتی دارم
    co(k,t) $ ( ord(t) eq 5) ..sum((i,s) $ (ord(s) gt max(ord(t),ef(i)) and ord(s) lt min(ord(t)+d(i)-1,lf(i))),r(i,k)*x(i,s))=l=6

    برای تعریف مجموعه Sدر ست باید چطور اعمال کنم؟؟؟
    در واقع sبین ماکسیمم دومقدار و مینیمم دومقدار دیگر قرار دارد

      • آخه من مقدار s رو به ازای هر فعالیت i در هر دوره زمانی t دارم.مثلا اگر ۴ تا فعالیت داریم مقدار s برای دوره اول ۴بار ماکس تا مین میشه.و به همین ترتیب برای دوره دوم بازم ۴بار ماکس تا مین دیگه
        در واقع برای ۴ فعالیت در ۵ دوره زمانی من ۲۰ مقدار دوتایی باید داشته باشم

        بازم مهم نیست؟چون ارور میده و sرو نمیشناسه

        • باور کنین نفهمیدم. شاید من مخم نمیکشه. لطفا فرمول کامل رو اینجا بذارین

  4. سلام.
    آیا میشه در تعریف پارامترها شرط گذاری کرد؟
    مثلا a(i,j) به شرط i=j مقدار خاصی بگیرد؟چطور باید در قسمت پارامترها تعریف کنم؟

  5. سلام. خسته نباشید.
    مدل ریاضی من به نظر میرسه مشکلی نداره. ولی وقتی با گمز اجراش میکنم جواب infeasible میده. نمیدونم مشکل چیه. لطفا راهنمایی کنید.
    ممنونم.
    .
    .

  6. سلام.
    من توی مدلم هم smax دارم و هم متغیر گسسته.
    الان نوع مدلم چیه؟ وقتی dnlp میزنم ازم خطا میگیره که متغیر گسسته دارم.
    با mip هم خطا میگیره چون smax دارم.

پاسخ دهید

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