سوالی که تقریبا برای همه ی ما پیش می آید.
◀️ لحاظ کردن پیش نیازی فعالیت ها یا پروژه ها در گمز
فرض کنیم یک پروژه داریم که به تعدادی فعالیت تفکیک می شود. تعدادی از این فعالیت ها پیش نیاز فعالیت های دیگر هستند. مثلا تا فعالیت 4 به طور کامل انجام نشود، فعالیت 6 امکان شروع نداشته باشد. این پیش نیازی را می توان با set و یا table در گمز تعریف کرد. که پیشنهاد گمزبوک استفاده از حالت دوم است.
رویه به این شکل است. (فرض کنیم که i فعالیت داریم)
1- تعریف مجموعه ها
ابتدا باید مجموعه ها تعریف شوند.
sets i/1*4/; alias(i,j);
2- تعریف جدول پیش نیازی
به عنوان مثال این جدول نشان می دهد که فعالیت 2 پیش نیاز فعالیت 3 و 4 است.
3- استفاده در محدودیت ها
حال تنها کاری که باید بکنیم این است که در محدودیت هایی که شرط پیش نیازی فعالیت i,j آورده شده است، با استفاده از دستور دلار$ این پیش نیازی را قید کنیم.
مثال:
c1(i,j)$pr(i,j)... c(i)=L=s(j);
سلام،
من برای پیش نیازی فعالیتها، راهکار شمارو انجام دادم j رو تعریف کردم و jp رو آلیاس اما پارامتر و متغیرهای من براساس j هستند مثلا پارامتر مدت زمان فعالیت و متغیر باینری تکمیل فعالیت، اما برای نوشتن محدودیت پیش نیازی لازمه یک طرف معادله براساس jp باشه اینو باید چیکار کنم؟ باید پارامتر و متغیر براساس jp هم تعریف کنم؟
سلام و ادب
خیر نیازی نیست. هر پارامتری که با j تعریف میکنین، با jp هم معتبر هست.
با سلام و خسته نباشید
در یک مسئله که میخواهیم به شکل mip فرموله بشه محدودیتی داریم که ، به شکل ضرب دو متغیر پیوسته برابر با یک پارامتر ثابت هست ، که باعث غیر خطی شدن مسئله میشه ، ممکنه پیشنهادی برای خطی کردن این نوع محدودیتها بدین لطفا
سلام و ادب
برای خطی کردن ضرب دو متغیر پیوسته، مقداری کمک از خود مسئله هم نیاز هست. من یکی از متغیر ها رو فرض میکنم X و یکی هم Y فرض میکنم. و فرض میکنم که یه محدودیتی هم وجود داره که برای x یا y یا هر دو یه حد در نظر میگیره.
اینم مثلا یه کران برای x (اگر برای y هم بود، چه بهتر)
بیایم y رو ضربدر این محدودیت کنیم.
الان تو معادلات اگر به جای xy بیایم z بذاریم موارد زیر بدست میاد:
معمولا مقداری دقت نیاز هست که آیا این محدودیت به سیستم مدلسازی شما می خوره یا نه.
پیشنهادم اینه که اول تو ابعاد پایین تر این خطی سازی رو تست کنین رو مدل (مقایسه کنین با خود مدل غیر خطی).
سلام
روی یک سامیشن ، اندیس i اتا mj می باشد ولی mj متغیر است ؛ چگونه می توان این دستور sum را پیاده کرد ؟؟
i=1 … mj در نظر بگیرید و mj توسط سایر محدودیت ها تعیین می شود.
سلام
روی یک سامیشن ، اندیس از i تا g می باشد ولی g متغیر است ؛ چگونه می توان این دستور sum را پیاده کرد ؟؟
سلام
به پشتیبانی ایمیل بفرستید فایل آموزشی برایتان ارسال شود
سلام ، من در محدودیت ها باید از عمل تقسیم استفاده کنم ولی هر کاری میکنم ارور تقسیم بر صفر میده در محدودیت ها از /برای عمل تقسیم استفاده میکنم
سلام
میتونید طرفین وسطین بکنین، البته اگه غیر خطی نمیشه محدودیت شما.
یا اینکه مقدار کوچکیی مثل 0.0001 رو بصورت دستی به مخرج اضافه کنین.
میتونین برای متغیری که تو مخرج هست lower bound تعریف کنین.
سلام کد پیشنیازی در مدل پریتسکر رو چجوری توی گمز بزنم؟ قسمت محدودیت زمان
سلام. لطفا دقيقتر سوال را مطرح ميفرماييد؟
مدل رياضي كه نياز داريد را بنويسيد كه خيلي خوب هست.
سلام
من یه مدل ریاضی برای زمانبندی نوشتم تابع هدفش cmax هستش اینو چطوری باید اعمال کنم؟
سلام
اگر فقط cmax هست. یعنی اگر فقط z=cmax هست، نیازی نیست محدودیت براش بنویسین. کافیه بگین cmax مثلا مینیمم بشه.
سلام
من میخام برای انرژی باتری یه قید و محدودیت بنویسم.به این ترتیب که انرژی اولیه مثلا ۲۰ باشه.
(E(a,t متغیر من هست.
من نوشتم
E(a,1)= 20
و حالت بعد انرژی هر ساعت یک باتری متشکل از انرژی ساعت قبل اون باتری بعلاوه مقدلر شارژ شده که من نوشتم
E(a,t)=E(a,t-1)+5
که ۱۵ مقدار شارژ جدیده وبه این خط ایراد میگیره
سلام. وقتتون بخیر. من یک شبکه ای از فعالیت ها دارم که شامل 40 تا گره هست. و این فعالیت ها در 4 دوره زمانی باید انجام شوند.هر فعالیت یک گره محسوب میشه. و هر گره پیش نیاز سه تا گره است. برای مثال گره 1 پیشنیاز گره 2و3و4 است گره 2 پیشنیاز گره 5و6و7 است. گره 3 پیشنیاز گره 8و9و10است. گره 4 هم پیشنیاز گره 11و12و13 است.و بهمین ترتیب مابقی گره ها پیش نیاز گره های دیگه اند. الان میخواستم ببینم چجوری باید در محدودیت هام نشان بدم که گره یک در دوره 1 اتفاق میاقتد .گره 2و3و4 در دوره 2….گره های 5و6و7و8و9و10و11و12و13 در دوره 3 و مابقی گره ها در دوره 4 اتفاق خواهند افتاد.
سلام
حتما شما یه متغیر دارین که اتفاق افتادن رو مشخص میکنه. این نوع متغیرها معمولا صفر و یک هستن. مثلا y(i,t یعنی اگر فعالیت i در زمان یا دوره t اتفاق بیفته. این برا وقتیه که ما محدودیت برای زمان نداشته باشیم. مثلا گروه اول بتونن تو هر دوره ای اتفاق بیفتن. حالا اگه بخوایم بگیم که y1 فقط تو دوره ی 1 اتفاق میفته، میتونیم اون رو فیکس کنیم. بقیه رو هم صفر.
اینجوری تبدیل به پارامتر هم میتونه بشه حتی. بهترم هست اتفاقا. مثلا میتونین y رو به عنوان پارامتر تعریف کنین. همونطوری که پیش نیازیا رو تعریف کردین.
شما سایتی رو میشناسید که نمونه ای از مدل پارامتریک برنامه هشت ترمه داشته باشه؟
من هرچقد سرچ کردم چیزی پیدا نکردم
من الان یک پروژه گمز باید تحویل بدم که موضوعش مدل نویسی برنامه هشت ترمه دانشکده هست.یک بخش از محدودیت ها مربوط به دروسی است که هم نیاز هستند.نمیدونم دقیقا چه جوری هم نیازی رو پیاده کنم
سلام
فایل گمزیی نداریم در این مورد. شما می تونید یه بیشنیازی تعریف کنید به عنوان مجموعه. یکی هم جدا همنیازی. یکیه کاربردشون.
سلام.ممکنه بگید هم نیازی ها چه جوری نوشته میشه در گمز؟
سلام
منظورتون از هم نیازی چی هست دقیقا.
ممنون میشم اگر نمونه کدی از RCPSP دارید برام ایمیل کنید
با سلام و احترام
نمونه ای از زمانبندی پروژه با فعالیت های چند حالته در مسائل است که توی این مدل علاوه بر محدودیت های پیش نیازی که توضیحش رو دادید، یک یا چند فعالیت می توانند به شیوه های دیگری(مثلا دستی یا ماشینی) نیز انجام شوند که منطقا زمان آنها متفاوت است. چند حالته بودن فعالیت ها رو چطور برای گمز تعریف کنیم با توجه به اینکه هدف مسئله حداقل کردن زمان اتمام پروژه است و اینکه منطقا یک شیوه انجام فعالیت از بین حالت های مختلف آن انتخاب میشه؟ یک سوال دیگه هم داشتم . بحث محدودیت منابع رو چطور وارد زمان بندی پروژه در گمز بکنیم. ممنون میشم راهنمایی کنید.
سلام
برای حالت مختلف کافیه که جاهایی که لازمه (برای ورودی های و یا متغیرها) یک اندیس m اضافه کنین. که m حالات مختلف انجام هست و با دستور set تعریف میشه. سوال دوم رو هم بهش میگن RCPSP
این یه مقاله مفید
مهندس در این کد که مربوط به زمانبندی قطعات هست z متغیر صفر ویک هست.بعداز حل در جواب تعداد یک های بیشتری از تعداد عملیات های ورودی را نشان می دهد ؟
سلام
اینو دیگه باید تحلیل کنین و بنده متاسفانه نمیتونم کمکی بکنم. قطعا یک اشتباه در مدلسازی یا کد نویسی وجود داره.
با سلام و عرض ادب
در مورد مقایسه فراابتکاری مدل های چندهدفه با گمز یه سوال داشتم
چه جوری میشه جبهه پارتو فراابتکاری رو با گمز در ابعاد کوچک برای مقالات مقایسه کرد؟ در گمر هم میشه جبهه پارتو داشت؟ بخ چه نحوی ممکنه برای مدل چند هدفه در گمز این کارو کرد؟ ممنون میشم که وقت میزارید.
سلام
بله میشه داشت. از روشایی نظیر محدودیت eps میشه استقاده کرد.
برا مقایسه فقط روند از روی نمودار با هم مقایسه میشن.
با سلام خدمت دوستان
بنده یک سئوال تخصصی داشتم و آن اینکه در مدلسازی زمانبندی کارگاهی انعطاف پذیر چگونه می توان نحوه توالی و تخصیص ماشین ها(با زمان های پردازش مختلف) را کد کرد بعنوان مثال: اگر job1 دارای 5 عملیات(O) باشد و 4 ماشین(M) داشته باشیم و ترتیب عملیات روی ماشین ها بصورت زیر باشد: (O11) یعنی عملیات اول روی ماشین اول
O11-O22-O33-O42-O54
دقت کنید که عملیات 2 و 4 روی ماشین 2 پردازش شده اند.
اگر نمونه فایل کد گمز در زمینه FJS داشته باشید و برام ارسال کنید. بسیار خوشحال خواهم شد.
پیشاپیش از راهنمائی هایتان سپاسگزارم.
سلام
فکر کنم در کانال چنین مطلبی رو نوشتیم. خیلی هم مهم هست این مسئله.
سلام
من کانال رو هم جستجو کردم ولی چیزی پیدا نکردم اگه براتون ممکنه راهنمائی بفرمائید.
متشکرم
سلام
یه ایمیل به ایمیل سایت بزنین. یه نمونه کد براتون بفرستم. توضیحش خیلی زیاده.
با عرض سلام و ادب
یک شبکه پروژه داریم که روابط پیشنیازی نیز مابین آنها حاکم است رویداها شروع و پایان فعالیت ها به ترتیب به صورت i و j هستند ( مرتبط با فعالیت های ij ) از آنجا که مجموعه ما به صورت m:1,2,…i,….,j,….M در مقاله مورد بررسی تعریف شده است و اینکه یکی از توابع هدف مساله شامل حداقل کردن زمان کل پروژه Ym (وای اندیس ام کوچک) می باشد که آن را به صورت حداقل کردن آخرین رویداد شبکه پروژه نیز نشان می دهند.
ممنون می شوم دوست گرامی در خصوص تعریف مجموعه های حاضر و نوع قید روابط پیش نیازی راهنمایی نمائید.
سلام
شما برای M نیازی نیست چیزی تعریف بکنید.
i رو تعریف کنین به عنوان مجموعه، j رو هم بهش آلیاس کنین.
y(i رو تعریف کنین به عنوان متغیر پیوسته.
توی تابع هدف به جای y(m بنویسین. y(‘i10’) یا بنویسین:
فرض کردیم که 10 تا فعالیت داشته باشیم.
سلام و وقت بخیر خدمت شما
آقا سایتتون عالیه.همین که جواب کامنتا رو با حوصله میدید حرف نداره خیلی ممنونم.خاستم تشکر کنم بابت سایتتون
کلا بگم : پشماااااااااام ریخت حاجی
سلام
:))
مرسی و خواهش میکنم.
سلام
من برای خطی کردن تابع هدفی که حاصل ضرب دو متغیر صفر و یکی x(i,j) & x(kl) d یک Yijkl باینری تعریف کردم.منتها ارور 148 و 149 میده. برای محدودیت ها هم این ارور رو میده.محدودیت دقیقا همون محدودیت مدل تخصیصه که روی Xij یک سیگمای تک اندیسه که فقط روی j یا i هست.اما ارور میده.ممنون میشم شیوه صحیحش رو بفرمایید.
اینم قسمت هایی از کدمه
سلام
حداقل تغییری که باید بدین اینه که:
سلام خسته نباشید
من یک شبکه ای از فعالیتها دارم با 6 گره که زمان اجرای فعالیتها با (t(i,j نشان داده شده. میخوام در گمز این داده ها رو وارد کنم که مثلا اگر از گره یک به گره دو کمان داشته باشیم `پس زمان اجرای فعالیت (t(1,2 مقدار 10 است این رو چطوری در گمز میتونم بنویسم؟
سلام
شما t رو اول بیاین با table تعریف کنین. بعد یه arc تعریف کنین که معرف کمان باشه. بعد تو محدودیت ها هر جا لازم بود t رو استفاده میکنین. وقتی شرط arc رو هم لحاظ میکنین، محدودیت و t فقط برای i,j هایی که arcشون برابر با 1 هست لحاظ میشن.