نمایش symbol های گمز و نمادهایی که زائد تعریف شده اند

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

برای اینکار در قسمت commond window (نواری که در بالای صفحه است) عبارت rf=MyFileName را تایپ کرده و اینتر را بزنید، کد شما ران شده و پس از حل مدل متوقف می شود. در این حالت به یک فایل با نام MyFileName.ref در دایرکتوری گمز شما تولید شده است که شامل تمامی این نمادها است. که می توانید با باز کردن آن توسط gams این گزارش خروجی را مشاهده کنید.

ref commond

و پس از اینتر زدن و باز کردن فایل ref:

ref files

در عکس بالا مشاهده می کنید که تمامی موارد تعریف شده لیست شده اند. نکته ی قابل توجه آن است که در این لیست موارد و نمادهایی که در کد گمز تعریف شده اند ولی مورد استفاده قرار نگرفته اند نیز در تب unused لیست شده اند.

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

10 دیدگاه

  1. آرش

    سلام حقیقت نمی دونستم سوالم در کدوم از دسته ها قرار می گیرن به خاطر همین اینجا پرسیدم
    علامت % چه کاربردی در گمز داره مثلا یک جا %X% یا %dumbr% فکرکنم برای فراخوانی پارامتر باشه می ذارن یه جایی فکر کنم برای فراخوانی فایل سیستم ازش استفاده می کنن
    %filesystem% یه جایی هم نوشته مثلا %۱ , ۲% , ۳% که متوجه شدم معنیش ، درصد مقدار خاصی نیست بازهم حدس می زنم فراخوانی باشه ولی مطمین نیستم اگر بشه یه توضیحی بابتش بدید ممنون می شم.
    با تشکر

    1. محمودی

      سلام
      موردی که بین دو تا % قرار میگیره، یعنی قبلا توسط سیستم یا کاربر تعریف شده و الان میخوایم ازش استفاده کنیم. مثلا همین مواردی که فرمودین xو filesystem

      $set n 10
      sets i/1*%n%/;
      * or
      .
      .
      if (mod_payoff.modelstat<>%modelstat.Optimal%, abort 'no optimal solution for mod_payoff');
      
  2. محبی

    سلام – در مساله TSP فرض کنیم یک جواب در اختیار داشته باشیم و بخواهیم چک کنیم که آیا دور کامل(دور همیلتونی) هست یا نه؟ – با این فرض که از شهر ۱ شروع کنیم و در صورت دور بودن flag=1 شود. تکه کد زیر را در گمز نوشته ام اما جواب درست دریافت نمی کنم. لطفا راهنمایی بفرمایید.
    loop(i$(ord(i)1),
    if(x.l(‘1′,i)=1,
    loop((j,v)$((ord(i)ord(j)) and (ord(j)ord(v)) and ord(i)ord(v)),
    if(x.l(i,j)=1 and x.l(j,v)=1,
    loop(y$(ord(y)1),
    if(x.l(y,’1’)=1,
    flag=1;
    );
    );
    );
    );
    );
    );
    );
    );

  3. مهدی

    سلام _ من این دستور رو دقیقا همینجوری که داخل عکس هست اجرا کردم ولی یه مشکل برخوردم و اون اینکه بعد از نوشتن کد و زدن اینتر، پیغام :
    Search String ‘rf=MyFileName’ not found
    مواجه میشم .’

    1. محمودی

      جایی که بهتون این خطا داده میشه، yes رو بزنین.

  4. مهدی

    این خطا رو وقتی میده فقط اوکی داره … نمیدونم کدوم قسمتشو اشتباه زدم ؟

    1. محمودی

      بعدش که اوکی میده، برید تو دایرکتوری. اونجا فایل تولید شده رو میبینید که میتونین با گمز باز کنین.

  5. رامین

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

    1. محمودی

      سلام
      مثلا ارسال خروجی از گمز به اکسل:

      Execute_Unload "tspdata.gdx" c,x,z;
      Execute 'GDXXRW.EXE tspdata.gdx O=tspdata.xls par=c rng=cost!a1 var=z rng=variables!a1 var=x rng=variables!a4'
      
      

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