یکی از بزرگترین مشکلاتی که کاربران مبتدی یا نیمه حرفه ای GAMS با کد نویسی دارند، تعریف معادلاتی نظیر معادله زیر است. این معادله را چگونه تعریف می کنید؟ پاسخ را کامنت بگذارید (این تمرین را جدی بگیرید)
ضمناً مناسب تر است که کامنت های خود، که شامل کد می باشند، را یک بار در GAMS و یا Notepad کد نویسی کرده و سپس به عنوان کامنت ارسال کنید.
با تشکر
مدیریت سایت gamsbook.ir
ایمیل: Support@gamsbook.ir
شماره تماس: 3325-405—0919
سلام رابطه زیر برای احتمال بیکاری در سیستم صف می باشد
با توجه به اینکه m متغیر باشد و برای سیگما از صفر تا mj منهای یک تعریف شده است. چگونه می توان در گمز نوشت . ممنون
سلام و ادب
برای بخش سیگما با حد بالای متغیر، شما اول یه حد بالا برای تعدادی سرورها باید در نظر بگیرین. مثلا این حد بالا رو اگه بخوایم برابر با U بذاریم، میشه از روش زیر حد بالای متغیر رو تبدیل به اندیس معمولی کرد:
(دقت کنید اینجا اندیس j رو استفاده نکردیم، خودتون لطفا اون بخش رو هندل کنید.
من اینجا فرض میکنم که مدل شما اینه:
(
حالا:
که در اینجا y یه متغیر باینری محسوب میشه.
سلام آقای دکتر
ضمن تشکر از وقتی که گذاشتید. در پاسخ بنده متوجه نشدم از حد بالای U چه استفاده ای شده است. g در محدودیت های 1 و2 تعریف شده شما، چه جور مقدار می گیره ؟ y چه موقع صفر و چه موقع 1 است ؟ میشه راهنمایی بیستر کنید ؟؟ چون نحوه نوشتار اینجا مثل خود گمز نیسن، اگر g اندیس y باشد، g در رابطه صف که از صفر شروع می شد چیه ؟
بیشتر توضیح دهید ممنون میشم . ابهام دارم
g همون اندیس شماست دیگه که از 0 تا m تغییر می کنه.
برای فهم این محدودیت، g رو برابر با صفر قرار بدید. محدودیت ها رو دستی باز کنید و بنویسید. و سیگما رو جمع بزنید بعدش. دقت بکنید تا این کار انجام نشه، متوجه مفهوم نمیشید. توی گمز هم همینجوری نوشته میشه. تفاوت خاصی نداره
تشکر ، اگر y را نیز تعریف فرمایید ممنون میشم ( در چه شرایطی 1 و کی صفر میشه )؟؟؟
y صرفا یه شمارنده هست برای g، به شرط هایی که اومده دقت کنین (محدودیت اول و دوم)، هر گاه g کوچکتر از m باشه، y برابر با 1 میشه. بنابراین در سیگما g=1 شمارش میشه. این تاجایی انجام میشه که g مساوی با m بشه. یعنی مثلا m اگر برابر با 3 باشه، y(1) , y(2), y(3) برابر با یک خواهند شد.
سلام خسته نباشید ممنون از وقتی که میگذارید و پاسخ میدید
میخواستم تاثیر تورم و سود رو در هزینه هام در نظر بگیرم و با فرض این که 10 سال برنامه ریزیه و t نشان دهنده ی سال از 1 تا 10 هست این خط زیر را نوشتم که البته فقط بخشی از معادله ی بزرگتره ولی خب مشکل در همینجاست.
(sum(y,power(((1+InfR)/(1+IntR)),y)
و خطای dimension different – the symbol is referenced with more/less میدهد
برای حل این مشکل چه کار باید کنم
سلام ممنون
y چیه؟
با سلام مجدد
در یک معادله ما دو تا اندیس داریم که زیرمجموعه یک مجموعه هستن اما با چند اختلاف نسبت به هم، بعنوان مثال یکی از آنها از 0 تا 4 هست و دیگری از 1 تا 5 (در خصوص اعضای فرضی (dummy)) حالا معادله ما فقط برای حالتهایی که این دو با هم نامساوی هستند مفهوم دارد، چگونه باید این شرط را برقرار کرد.
بنده خودم با یک روشی مشکل را حل کردم اما میخاستم ببینم آیا دستوری در گمز هست که عضو یک مجموعه را بازخوانی بکند (Ord فقط ترتیب عضو را می خواند)
تشکر فراوان
سلام
دقت کتید که ord(0 برابر با 1 هست تو اندیس اول یا i
و ord(1 در اندیس دوم یا j برابر با 1 هست
وقتی که شرط میذارین به این نکته دقت کنین.
ord، card, uel,pos و… رو اصطلاحا set attributes می نامند. خواستین در موردشون بخونین. تو گوگل سرچ بزنین gams set attributes.
با سلام
جناب محمودی برای اینکه یک شرط به یک معادله اضافه کنیم که اگر یک پارامتر نامساوی با صفر بود معادله را اجرا کند چگونه باید عمل بکنیم؟
خیلی ممنون از سایت خوب و مفیدتون و راهنمایی های ارزشمند شما
سلام
مثال:
عرض سلام و ادب و همچنین عرض تبریک بابت سایت خیلی خوبتون.
مسئله cvrp (با 2 تا ماشین و 5 تا مشتری) رو میخوام کد نویسی کنم ولی به مشکل خوردم
1- set رو چطوری تعریف کنم با i و (alias(i,j,k ولی جدول هزینه ها رو چطوری بنویسم
2- فرمول miller رو چطور بنویسم
لطف میکنید راهنمایی کنید ممنون میشم
سلام
سوالتون رو واضح مطرح بفرمایین لطفا. مچکرم
سلام این مجموعه رو چجوری تو زبان گمز مینویسن؟
t عضو{ Ut تا t}
سلام
بستگی داره کجا به کارش ببرین.
راجع به نسون دادن صفر سوال داشتم.
وقتی خروجی رو تو اکسل ذخیره میکنم فقط اعضای غیر صفر ظاهر میشن راهی هست صفر رو بشه نشون داد؟
حتی توی فایل gdx هم صفر ظاهر نمیشه
سلام
ببینین این موارد ساده رو ذهنتون رو درگیرش نکنین. همیشه دنبال ساده ترین راه باشین.
مثلا میتونین خروجی رو تو یه شیت ذخیره کنین، و تو یه شیت دیگه بگین این سلول ها مساوی هستن با سلولهای شیت قبلی. صفرم بهتون نشون میده.
سلام دوستان .
ببخشید ی سوال داشتم . محدودیت زیر رو چطوری باید نوشت.
X(i,j)- X(j,i)
سلام
واضح بنویسید لطفا.
لطفا جواب سوال بالا رو بدین. ممنون.
سلام
خانم خسروی جوابشون درسته.
set t /1*10/ ;
alias (t,tp);
variables
x(t)
y(t);
equations
eq(t)
;
eq(t)..x(t)=l=sum(tp $(ord(tp) gt ord(t)) ,y(tp));
سلام
بله جوابتون کاملا درسته، فقط باید gt رو تبدیل به ge بکنین
ممنون از زحمات شما
سلام.چرا از یک تا ده گذاشتن؟
یه فرضه. شما میتونین بزرگتر یا کوچیکتر هم بگیرین.
ممنون
set t /1,2,3,T/ 1
2 ‘T همان آخرین عددی است که در اینجا نوشته می شود ‘
eq(t) .. X(t)=l=sum(t$(ord(t)<T), Y(t)); 3
سلام
این جواب صحیح نیست. مقداری بیشتر فکر کنید. دقت کنید:
در گمز هر اسم باید یکه باشد. مثلا در تعریف set اشتباه کردید.
در تعریف set همه اجزا باید واضح باشند. یا به نوعی تعریف اولیه داشته باشند.
و اینکه از دستور alias استفاده کنید.
موفق باشید