۸

پیشنیازی فعالیت ها در زمان بندی پروژه در گمز

سوالی که تقریبا برای همه ی ما پیش می آید.
◀️ لحاظ کردن پیش نیازی فعالیت ها یا پروژه ها در گمز

فرض کنیم یک پروژه داریم که به تعدادی فعالیت تفکیک می شود. تعدادی از این فعالیت ها پیش نیاز فعالیت های دیگر هستند. مثلا تا فعالیت ۴ به طور کامل انجام نشود، فعالیت ۶ امکان شروع نداشته باشد. این پیش نیازی را می توان با set و یا table در گمز تعریف کرد. که پیشنهاد گمزبوک استفاده از حالت دوم است.
رویه به این شکل است. (فرض کنیم که i فعالیت داریم)
۱- تعریف مجموعه ها
ابتدا باید مجموعه ها تعریف شوند.

sets
i/1*4/;
alias(i,j);

2- تعریف جدول پیش نیازی

pred

 

به عنوان مثال این جدول نشان می دهد که فعالیت ۲ پیش نیاز فعالیت ۳ و ۴ است.
۳- استفاده در محدودیت ها
حال تنها کاری که باید بکنیم این است که در محدودیت هایی که شرط پیش نیازی فعالیت i,j آورده شده است، با استفاده از دستور دلار$ این پیش نیازی را قید کنیم.
مثال:

c1(i,j)$pr(i,j)... c(i)=L=s(j);

8 دیدگاه در “پیشنیازی فعالیت ها در زمان بندی پروژه در گمز

  1. سلام خسته نباشید
    من یک شبکه ای از فعالیت‌ها دارم با ۶ گره که زمان اجرای فعالیت‌ها با (t(i,j نشان داده شده. میخوام در گمز این داده ها رو وارد کنم که مثلا اگر از گره یک به گره دو کمان داشته باشیم `پس زمان اجرای فعالیت (t(1,2 مقدار ۱۰ است این رو چطوری در گمز میتونم بنویسم؟

    • سلام
      شما t رو اول بیاین با table تعریف کنین. بعد یه arc تعریف کنین که معرف کمان باشه. بعد تو محدودیت ها هر جا لازم بود t رو استفاده میکنین. وقتی شرط arc رو هم لحاظ میکنین، محدودیت و t فقط برای i,j هایی که arcشون برابر با ۱ هست لحاظ میشن.

  2. سلام
    من برای خطی کردن تابع هدفی که حاصل ضرب دو متغیر صفر و یکی x(i,j) & x(kl) d یک Yijkl باینری تعریف کردم.منتها ارور ۱۴۸ و ۱۴۹ میده. برای محدودیت ها هم این ارور رو میده.محدودیت دقیقا همون محدودیت مدل تخصیصه که روی Xij یک سیگمای تک اندیسه که فقط روی j یا i هست.اما ارور میده.ممنون میشم شیوه صحیحش رو بفرمایید.
    اینم قسمت هایی از کدمه

    set i workshops/a,b,c,d,e,f/;
    Alias(i,k);
    set j salons/1*6/;
    Alias(j,l);
    Binary Variable
    X(i,j) Assignment workshop i to salon j;
    
    Binary Variable
    Y(i,j,k,l) Xij * Xkl  ;
             returnback..z=e=sum((i,j,k,l),C(j,l)*V(i,k)*Y(i,j,k,l));
             linearation..Y(i,j,k,l)=g=(X(i,j)+100000((X(k,l)-1));
             assignment1..sum(i,X(i,j)))=e=n;
             assignment2..sum(j,X(i,j)))=e=n;
    
  3. سلام و وقت بخیر خدمت شما
    آقا سایتتون عالیه.همین که جواب کامنتا رو با حوصله میدید حرف نداره خیلی ممنونم.خاستم تشکر کنم بابت سایتتون
    کلا بگم : پشماااااااااام ریخت حاجی

  4. با عرض سلام و ادب

    یک شبکه پروژه داریم که روابط پیشنیازی نیز مابین آنها حاکم است رویداها شروع و پایان فعالیت ها به ترتیب به صورت i و j هستند ( مرتبط با فعالیت های ij ) از آنجا که مجموعه ما به صورت m:1,2,…i,….,j,….M در مقاله مورد بررسی تعریف شده است و اینکه یکی از توابع هدف مساله شامل حداقل کردن زمان کل پروژه Ym (وای اندیس ام کوچک) می باشد که آن را به صورت حداقل کردن آخرین رویداد شبکه پروژه نیز نشان می دهند.
    ممنون می شوم دوست گرامی در خصوص تعریف مجموعه های حاضر و نوع قید روابط پیش نیازی راهنمایی نمائید.

    • سلام
      شما برای M نیازی نیست چیزی تعریف بکنید.
      i رو تعریف کنین به عنوان مجموعه، j رو هم بهش آلیاس کنین.
      y(i رو تعریف کنین به عنوان متغیر پیوسته.
      توی تابع هدف به جای y(m بنویسین. y(‘i10’) یا بنویسین:

      y(i)$(ord(i) = card(i));
      

      فرض کردیم که ۱۰ تا فعالیت داشته باشیم.

پاسخ دهید

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