تمرین ۲: زیر مجموعه های یک مجموعه

فرض کنید مجموعه ای تحت عنوان i داریم که به شکل زیر تعریف شده باشد،

Set i/1*10/;


اگر بخواهید تمامی زیر مجموعه های j عضوی ( مانند {۱,۲} , {۱,۳,۷} ) را در کد نویسی به کار ببرید چگونه این عمل را انجام می دهید؟

ضمناً مناسب تر است که کامنت های خود، که شامل کد می باشند، را یک بار در GAMS و یا Notepad کد نویسی کرده و سپس به عنوان کامنت ارسال کنید.

با تشکر
مدیریت سایت gamsbook.ir

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

 

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

8 دیدگاه

    1. محمودی

      گذاشته بودما. یادم نیست کجاست الان!
      ولی تو کامنتای پستای دیگه هست حتما. پیدا کردم میذارم حتما و خبر میدم بهتون.

  1. الهام

    با سلام
    من میخواهم تمام زیرمجموعه های یک مجموعه را تعریف کنم، از چه دستوری باید در گمز استفاده کنم؟

    1. محمودی

      سلام
      مثال زیر نشون میده که k شامل زیر مجموعه های دو عضوی مجموعه ی i هست. برای بقیه مزیر مجموعه ها هم شما باید اندیس های چند بعدی دیگه ای مثل k تعریف کنین. مث k1 که سه بعدیا رو نشون میده.

      set i/1*10/;
      alias(i,m,j);
      set k1(i,j,m),k(i,j);
      k(i,j)=yes;
      k1(i,j,m)=yes;

      حالا اگه شرایط دیگه ای هم داشته باشین میتونین با دلار اعمالش کنین. مث مثال زیر:

      k(i,j)$(ord(i) < ord(j)=yes;

  2. حمیدرضا

    با سلام.
    یک محدودیت دارم برای حذف زیر تور. تمام گره های موجود رو با مجموعه v نشون میدیم. این محدودیت برای تمامی زیر مجموعه های v بجز مجموعه تهی و خود v باید اعمال بشه. بصورت زیر:
    sum((i,j),x(i,j))<=(tedad azaie majmue s)-1; be ezay har s zir majmue v, sv, s{}
    به چه صورت نوشته می شود؟

    1. محمودی

      سلام
      شما از یه محدودیت استاندارد که از مقالات گرفته شده باشه و قطعا درست باشه باید استفاده کنین. من بدون اون فرمول نمیتونم خدمت شما نظری بدم.

  3. مجتبی

    سلام وقت همگی بخیر
    آیا میشه تو گمز یه اندیس تعریف کرد( /k1*k100/) و سه تا زیر مجموعه ازش ساخت(mk,bk,ck) و تو محدودیتی که به گمز میدیم ازش بخوایم هر بار از kهای عضو یک زیر مجموعه استفاده کنه؟
    (مثلا سور محدودیت رو jه که ۳ عضو داره)

    1. محمودی

      سلام
      بله میشه. مثلا می تونین یه اندیس دیگه به اسم i تعریف کنین که از ۱ تا ۳ تغییر می کنه. بعد یه مجموعه دیگه به اسم rel(i,k تعریف کنین ازش به عنوان شرط تو محدودیت ها استفاده کنین.
      یه همچین چیزی میشه. ممکنه نیاز به تغییر داشته باشه.

      sets 
      k/k1*k100/
      mk(k)/k1*k20/
      also define bk and ck
      i/1*3/
      rel(i,k
      ;
      rel('1',mk)=yes;
      rel('2',bk)=yes;
      ....
      eq1(i,k)$rel(i,k)..
      

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