با اطمینان 99 درصد تمامی کد نویسان گمز -از مبتدی گرفته تا فوق حرفه ای یا توسعه دهنده-
پس از Run کردن مدل خود، حداقل یک Error را مشاهده خواهند کرد.
خوشبختانه اکثر Error هایی که GAMS به کاربر می دهد با تغییرات بسیار ساده ای در کد نویسی رفع خواهند شد.
در این بخش قصد داریم خطاهای رایج و معمولی که دوستان در بخش های مختلف کامنت گذاشته اند، را به عنوان تاپیک های جداگانه ای مورد بحث قرار دهیم.
با ما همراه باشید
ایمیل: Support@gamsbook.ir
شماره تماس: 3325-405—0919
سلام. خیلی از توجهات شما ممنونم .در مورد ایراد زیر نظری دارید؟
** Infeasible solution. A variable has reached ‘Infinity’.
Largest legal value (Rtmaxv) is 1.00E+10
The allowable range can be changed with option:
Rtmaxv=x.xxe+xx
بعدش هم اینو نوشته:
**** ERRORS/WARNINGS IN VARIABLE QD(OTH)
1 error(s): The variable is unbounded
1 error(s): The variable has reached ‘infinity’
سلام و ادب
ارور میگه که یه متغیر شما به سمت بینهایت داره حرکت میکنه، معمولا هم تابع هدف هست و بنابراین باید مقداری رو کنترل این موارد و مدلسازی دقت بیشتری داشت
سلام در مورد این ایراد نظری دارید؟
warning(s): vcPower: GRAD SINGULAR: x**c, x=0, 0<c<1
به كامت قبلتون رجوع كنيد.
سلام. با مصیبت زیاد تمامن ارور ها رو حل کردم ولی یه ارور تقسیم بر صفری میده که اصلا معنی نداره چون تقسیمی نکردم. **** Exec Error at line 425: division by zero به دادم برسید
eqYI(in).. YI(in)=e= sum(f,YIF(in,f))+sum(jn,TRANS(in,jn))+ TRANSG(in)+EI(in)*EXR
سلام و روز بخير.
احتمال داره خط درستي را كه خطا مرتبط به ان هست را كپي نكرده باشيد؟
در اين خط كدام ترمها پارامتر و كدامها متغيير هستند؟
سلام. با مصیبت زیاد تمامن ارور ها رو حل کردم ولی یه ارور تقسیم بر صفری میده که اصلا معنی نداره چون تقسیمی نکردم. **** Exec Error at line 425: division by zero به دادم برسید
eqYI(in).. YI(in)=e= sum(f,YIF(in,f))+sum(jn,TRANS(in,jn))+ TRANSG(in)+EI(in)*EXR
خط درست رو نوشتم in شامل دو تا پارامتر هست که برای یکی از اونها ایراد میگیره
eqYI(COM).. – YIF(COM,CAP) – YIF(COM,LAB) + YI(COM) – TRANS(COM,HOH)
– TRANS(COM,COM) – TRANSG(COM) – EI(COM) =E= 0 ;
(LHS = -8.99992883205414E-5, INFES = 8.99992883205414E-5 ****)
—- eqYIH =E=
eqYIH.. – YI(HOH) + YIH =E= 0 ; (LHS = 0)
**** Exec Error at line 425: division by zero (0)
سلام. فايلتون را به اي دي زير در تلگرام بفرستيد ببينم چي هست اين خطا
@Abbas_Omidi
سلام من مدلم رو اجرا کردم ولی هیچ جوابی نمیده و اینو میزنه Terminated due to a licensing مشکل از کجاست؟
سلام و ادب
بخش دانلود از منوی بالای سایت رو مطالعه کنین حتما
با درود، خطای864 چیست و چگونه رفع می شود؟
سلام.
كجا با چنين خطايي مواجه شديد؟
ميشه از لاگ ديتا قرار بديد. (گپي و پيست كنيد)
سلام وقتتون بخیر من یک کد گمز دارم که وقتی ران می کنم ارور تقسیم بر صفر بهم میده
امکانش هست بهم ادرس ایمیلتون رو بدید براتون ایمیل کنم نگاه کنید؟
سلام.
پيشنهاد ميكنم ابتدا خودتون مدل را خط به خط (محدوديت به محدوديت) اجرا كنيد تا ببينيد اين خطا دقيقا در كدام محدوديت رخ ميده. (و حتي تابع هدف). بعد تنها ان قسمت (ترم غيرخطي) را با توضيحات در ادامه همين پست قرار بديد. این ارور از یک کسر میاد، و احتمالا نیاز باشه مقداری خیلی کوچک به مخرج اضافه بشه.
سلام
خسته نباشید
من لایسنسم درسته ولی برای ران مدلم exit code7 رو برام میفرسته
سلام گمزتون نسخه چنده؟ 25.1 یا 24.7 خوبه
این پست رو بخونید
سلام errorlog 99
دلیلش چیه؟
سلام
قصدی برای ارتباط با سایر نرم افزارها نظیر neos داشتید؟
سلام خطای 510 و 502 وقتی دایرکتوری رعایت شده باشه برای چی هست؟
سلام و ادب
مشکل از آدرس دهی هست، فایل ها رو برای ما ایمیل کنید.
سلام خسته نباشید
ببخشید من مشکل ارور
expected و set is under control already دارم هرکار میکنم درست نمیشه
سلام روز بخیر
شما احتمالا در صور عمومی یک اندیس رو گذاشتید، در حالی که در محدودیت هم روش سیگما نوشتید.
سلام وقت بخیر
میشه دلیل exit code 3 رو بفرمایید. ایا دستور display من اشتباه داره چون بعد از run کردن سربرگ نمایش داده نمیشه درصورتی که لایسنس گمزم فعاله؟
;display zz1.l ,zz2.l ,zzf.l ,a1.l ,a2.l ,a3.l ,am.l ,w.l ,y.l ,v4.l ,v5.l ,veh.l ,f1.l ,f2.l ,l1.l ,l2.l
اگر لازم هست کد رو براتون ایمیل کنم؟
سلام و ادب
ارسال بفرمایید
سلام وقتتون بخیر
بخشید ارور 322 به چه معناست و چطوری رفع میشه؟
سلام و ادب
متن ارور رو لطفا بفرمایید. حفظ نیستم
با سلام و وقت بخیر
گمز و متلب را لینک کردم.هر دو نسخه64 هستند. برای سایز بالاتر با این خطا روبه رو میشوم:
Error using gams
abnormal GAMS termination running C:\GAMS\win64\25.1\gams.exe Aghjani.gms lo=0: check listing file
لایسنس اوکیه.تاریخ را هم به عقب بر میگردانم.
سلام و ادب
بدون متلب یه بار با گمز مسئله رو حل کنین در سایز بالا. به احتمال زیاد مشکل از همین لایسنس هست.
با سلام و ضمن تشکر از اینکه پاسخ سوالات را میدهید
من انتهای کدم یک لوپ تعریف کردم به صورت زیر
parameter
pr2(p,k,t)
;
Loop((p,k,t),
if(Pr.l(p,k,t)>20000,
pr2(p,k,t)=20000;
else if (Pr.l(p,k,t)<5000,
pr2(p,k,t)=5000;
else
pr2(p,k,t)=Pr.l(p,k,t);
);
);
Pr.fx(p,k,t)=pr2(p,k,t);
model Sustainable_2 /eq1,eq2,eq3,eq4,eq5,eq6,eq7,eq8,eq9,eq10,eq11,eq12,eq13,eq14,eq15,eq16,eq17,eq18,eq19,eq20/
option optca=0;
option optcr=0;
option mip=CPLEX;
solve Sustainable_2 us mip max z_obj;
display NL.l,X.l,X_1.l,Q.l,Q_1.l,Q_2.l,S.l,S_1.l,S_2.l,O.l,L.l,In.l,R.l,De.l,Pr.l,z_obj.l;
اما ارور ۳۴۹ میده و توضیح ارور هم این هست که
Declaration or equation is not allowed inside a loop or of statement.
اشکال کارم کجاست؟ چطور میتونم این مشکل رو رفع کنم؟
(حلقه ای که میخوام بنویسم اینه که مقدار متغیر pr که قبلا حل شده رو بگیره و مقایسه کنه با مقادیر داده شده و پارامتر pr2 مقدارش مشخص بشه
بعد مقدار تغیر pr روی پارامتر pr2 فیکسبشه ودوباره بره مدل رو از اول حل کنه
سلام و ادب
ظاهرا جای دیگه ای بهتون پاسخ داده شد.
سلام ببخشید بدای من پس از حل مسیله نرم افزار پیام user error encountered نشون میده چکارکنم ؟
سلام و ادب
احتمالا کد رو از جایی کپی پیست کردید، کد رو بفرستید ببینم.
Something
الان سر و تهش معلوم نیست که
عذر میخواهم نمیدونم چرا اینطوری کد فرستاد
بصورت زیر تغییر بدید. خودتون مجدد چک بکنید. این ارور برای من نیومد.
این کد در نظر بگیرید
خطای model has an unbounded ray را نشان میده
سلام این کدی که فرستادید اجرا کرد گمز منتها برای دو تا واحد اول مقدار optimal را پیدا کرد و برای بقیه تابع هدف unbounded z3 بود. لینک مقاله ای که ازش برای مدلسازی استفاده کردم
https://link.springer.com/article/10.1007/s00500-019-04168-z
Incorporating decision makers’ preferences into DEA and common weight DEA models based on the best–worst method (BWM)
منتها وقتی از دو روش lp_metric با مقدار پی بی نهایت و روش min_max استفاده مکنم مقادیر w(i) , ww(o) را برابر با وزن های روش BWM در تمام واحدها میده و مقادیر بهینه هستندنمیدونم مدل اشتباه کد نویسی کردم یا خیر . البته در روش ال پی متریک با پی برابر یک ارور میده ولی در پی برابر بی نهایت و روش مین ماکس مقادیر بهینه هستند .
من یکبار دیگه کد را برای شما ارسال میکنم لطفا بررسی نمایید چون دارم در پایان نامه استفتده میکنم خیلی مهمه ممنون از شما.
سلام خسته نباشید، برای این محدودیت من خطای 353 را میدهد مشکل از کجاست؟
خطای 353:
سلام و ادب
d یک اندیس هست؟ بجاش بنویسید ord(d) در فرمول
سلام وقت بخیر، در تابع هدف مدل من دو تا خطا را نشان میدهد معنی این خطاها چیه؟
تابع هدف:
objective1.. f1 =e= sum((k,t), G(k) * (d – P(k,t)));
ارور 148: dimension different
ارور133: incompatible operands for addition
سلام و ادب
اولی یعنی یه پارامتر تعریف کردید، با مثلا اندیس k ولی به هنگام استفاده در فرمول اندیس متفاوتی (متفاوت، کمتر، بیشتر) براش در نظر گرفتین. دومی رو نمیدونم. باید کد رو ببینم.
سلام وقتتون بخیر
کدم رو وقتی ران میکنم بهم ارور 56و256 رو میده
علتش چیه
56 Endogenous operands for * not allowed in linear models
256 Error(s) in analyzing solve statement. More detail appears
Below the solve statement above
سلام و ادب
مدل شما غیر خطی هست، ولی تایپ مدل رو خطی گذاشتید توی دستور solve به nlp یا dnlp یا minlp بید تغییر بدید
با سلام و عرض خسته نباشید
من یه حلقه لوپ تعریف کردم که خطای 149 میده.با توجه به اینکه دستور alias تعریف کردم و بنظرم حلقه رو درست تعریف کردم نمی دونم چرا این خطا را میده
با عرض معذرت من کدهام زیاده و همه رو کامل نمیزارم. اگر نیاز شد بفرمایید ارسال کنم
سلام و ادب
ببینید، نیازی نیست شما هر بار لوپ بنویسید. مثال زیر رو ببینید. (فکر میکنم مسئله شما مربوط به تحلیل پوششی داده ها هست)
ضمن تشکر از شما
بله دقیقا تحلیل پوششی داده ها هست
ولی network DEA هست و من یه آموزش کوتاه دیدم واسه NDEA اومده بود لوپ تعریف کرده بود
اگر با توجه به نوع مدل، بنظرتون ایجاد لوپها اشتباه هست تا فقط یک لوپ بزارم؟
مهم نیست، میشه به تعداد اندیس ها لوپ نوشت، ولی سری که درد نمیکنه رو دستمال میبندن؟ یه دونه کافیه.
با توجه به اینکه loopها را پاک کردم باز هم همون خطای 149 رو میده
مطمئنا ارور میده، xo با x اندیس های متفاوتی دارن. یه سمت اندیس k داره، یه طرف j، اگر همسان هستند، یکیشون رو استفاده کنین در هر دو طرف
سلام و وقت بخیر، ممکنه بفرمایید معادله دارای عبارت از نوع X*Y رو چطوری میتونیم توی GAMS خطی کنیم؟
سلام روز بخیر
بسته به اینکه کدوم متغیره و چجوریه نوع توان و علامت پایه از عبارات power(x,y) یا x**y میشه استفاده کرد
ببخشید فکر کنم منظورم رو درست نگفتم، منظورم معادله از نوع Z=X*Y (هر دوی X و Y متغیر هستن)، خطی سازی این معادله چطوری باید باشه؟
اها ببخشید من خوب متوجه نشدم.
خطی سازی ضرب دو متغیر اگر هر دو پیوسته هستن مقداری مشکل و خیلی وقتها غیر ممکن هست. ولی اگر حداقل یکی از اینها صفر و یک و یا عدد صحیح باشه میشه به راحتی خطی کرد. نوع متغیرها رو بفرمایید تا ببینیم چه میشه کرد
نوع متغیرها یکی عدد صحیح و دیگری پیوسته هست، روش McCormick envelopes رو چقدر توصیه میکنید برای این موضوع؟
ببینید تو مسائل حوزه کاری شما آیا مک کورمیک استفاده شده یا نه. اگر شده به چه شرح و شرطی.
راه دیگه شما، خطی سازی هست. یعنی متغیر گسسته رو تبدیل به مجموع متغیرهای صفر و یک می کنین، بعد ضرب متغیرهای صفر و یک در پیوسته رو به راحتی میشه خطی کرد. منبع خوب هم کتاب هیلر و لیبرمن به نام Introduction to operations research هست.
ضمن تشکر از راهنماییتون، متأسفانه من راجع به خطی کردن ضرب متغیر 0 و 1 در متغیر پیوسته هر چقدر جستجو کردم چیزی توی کتاب هیلیر و لیبرمن پیدا نکردم!
ممکنه بنده رو بیشتر توی این زمینه راهنمایی بفرمایید؟
این مثال رو ببینید:
با عرض سلام و خسته نباشید
من یک متغییر در مدلم دارم که مقدارش از زمان t-1 به زمان t می رود. این را چطور در اندیس مربوط به جدول یا ماتریس مقادیر این متغییر تعریف کنم؟
سلام و ادب
اولا اگر متغیر باشه، که نیازی به تعریف table نیست. بنابراین فرض میکنیم که منظور شما پارامتر (معلوم) هست. به نظر فقط یک اندیس t بذارین کافی باشه. ولی هر جا به کار می برین، حواستون به تعریفی که کردین باشه.
ممنون از راهنماییتون
بله پارامتر هست
سلامت باشین
سلام
مدل زیر را در گمز نوشتم
خطای Exit code 3 می دهد
سلام
کدی که فرستاده بودید رو من توی گمز کپی کردم و یه دنیا ارور داد. نمیدونم.
با سلام
من میخوام sum رو از i-1 تا i+1 بگیرم میشه راهنمایی کنین چطور میتونم این کار رو انجام بدم؟
sum روی m هست که با alias(i,m) مشخص کردم ولی توی محدودیتم میخوام m رو از i-1 تا i+1 بگیرم
ممنون میشم راهنمایی کنین
سلام
اینو ببینید:
سلام وقت بخیر
من دارم با یک مدل تعادل عمومی محاسبه پذیر که مرتبط با رشته اقتصاده کار میکنم. مشکلی که دارم خطای 409 هست. گمز موقعیت خطا رو در جدول داده ها و سطر اول از ستون اول نشون میده. و میگه قابل شناسایی نیست .خودم چیزی نمیبینم که نامفهوم باشه.امیدوارم مشکلمو به درستی تشریح کرده باشم. ممنون میشم من رو راهنمایی کنید.
سلام
جدول زیر رو ببینید:
گمز انتظار داره در اولین سطر از شما j ها رو بگیره.
تو سط دوم i1 و سپس اعداد مربوطه. شما این قانون رو نقض کردین.
این رو بذارید پای نابلدی بنده…. داده ها رو نمیشه از اکسل کپی کرد؟ چون من اینکار رو کردم…. شاید ارور ناشی از این باشه
سلامت باشید
میشه، فقط دقت کنید شماره اندیس و مقادیر جدول تو یک خط و در ستون مربوطه بیان. چک کنین حتما بعد از کپی کردن.
سلام روزتون بخیر
یک محدودیت من برای همه سال ها و نیروگاه ها حل میشه به جز یکی نمی دونم توی کدنویسی اشکال داره یا نه
سلام
من متوجه این نشدم “برای همه حل میشه بجز یکی” یعنی چی؟ مسئله به خاطر اندیس i همه رو با هم حل می کنه. شفاف سازی میکنید لطفا
یعنی روی نیروگاه hydro من infeasible دارم به تعداد ۳۳ تا
اگر در کل model status شما اینفیزیبل شده، باید ارتباط این محدودیت رو با سایر محدودیت ها چک بکنید، داده ها، مدلسازی و کد رو مجددا چک کنید. ممکنه بارها و بارها نیاز باشه که این عمل تکرار بشه. قانون خاصی نداره
سلام
من یکسری positive variable دارم، برای آنها چگونه lo و up تعریف کنم که محدودیت های من infeasible نده؟
سلام
سوالتون گنگه
یعنی وقتی برای variable ها سطح پایین مشخص نکنم مدلم nonopt میشه و اگه مشخص کنم محدودیت ها infeasible میشن
مشکل میتونه از هر چیزی باشه. مدل، داده ها و کد رو مجددا باید چک کنید.
سلام خسته نباشید.
مدل من در یک محدودیت خطا می دهند چگونه آن رابنویسم.
سلام
اگر مشکل روی اندیس t هست، به احتما زیاد این capnew ها به ازای t=1 تا t باید با هم جمع بشن.
تعداد infeasible ها بیشتر شد
این دیگه مشکل از مدلسازی، داده ها و یا کد نویسی هست
solution satisfies tolerance
سلام معنی این جمله در گمز چی هست وقتی که ران میکنی مدل را؟
سلام
بصورت دیفالت هر سالوری یه تلرانس براش تعریف شده، اگه جوابی که برای متغیرها یا محدودیت ها بدست میاد تو محدوده ی تلرانس تعریف شده باشه، گمز به عنوان یک جواب شدنی بهش نگاه میکنه و از لحاظ کامپیوتری میشه بهش اتکا کرد.
سلام روز بخیر
من در قسمت display با ارور ۵۶۷ مواجه شده ام .اگر راهنمایی بفرمایید خیلی ممنون میشم
سلام
متن ارور رو بذارین لطفا.
سلام وقت بخیر من در کد نویسی زیر به ارور های 150و149و171و257 برخورد کرده ام
اگر لطف بفرمایید و راهنمایی بفرمایید خیلی ممنون میشوم
ارور 150 مربوطبه چه مشکلی است ؟
سلام
محدودبت اولتون i رو تعیین تکلیف نکردین. یا باید تو صور عمومی بیاد، یا تو سیگما همین مشکل در محدودیت دوم هم هست
سلام خسته نباشید برای این خط در گمز ارور 171 و 148 را به چه علت میدهد؟
Eq13(y,t,h,n).. AEchp(y,t,h,n) =l= sum(l,OPchp(y,t,h,l,n));
متن ارور: 171—— domain violation for set
148——–dimension different
سلام
احتمالا تعریف یک متغیر(پارامتر-محدودیت) شما با یه تعداد و ترتیبی از اندیس ها انجام شده ولی در این فرمول این ترتیب یا اندیس ها رو یه جور دیگه استفاده کردین
با سلام واحترام
بعد از اجرای گمز
solver statue :1 normal completion
model status: 8 integer soloution:
چنین شرایط یعنی اینکه مدل بدرستی حل شده است و جواب بهینه عدد صحیح را ارائه میدهد؟
بعضی از متغییرها کاملا صفر شده اند، علت چیست؟
سلام و ادب
استتوس اگر برابر optimal شد، یعنی جوابتون بصورت بهینه حل شده. این جواب بعنی سالور حداقل یک جواب برای مسئله پیدا کرده و شدنی هست. گپ هم احتمالا براتون گزارش شده.
اینکه متغیری که انتظار دارید صفر نشه در حالی که صفر شده، مفهومش اینه که مدلسازی، کد نویسی و یا داده هاتون مشکلی داخلش هست. باید از اول همه چی رو چک کنین
سلام ارور 145 برای چیه؟ روی یه متغیر با سه اندیس میاد
سلام
احتمالا اشتباه تایپی دارین تو عملگرها یا اندیس های یک متغیر. کد اون خط رو بفرستین
سلام وقت بخیر
ببخشید من یه table دارم 3*3 هست میخواستم کمترین مقدار ستون اول رو دربیارم میخواستم ببینم کدش به چه صورت میشه؟!
سلام
از تابع smin می تونین استفاده کنین. فرضا جدول شما به صورت x(i,j تعریف شده باشه که i,j هردوشون 3 تا عضو دارن.
سلام من یک مدل برنامه ریزی دارم تمامی خطاها را رفع کرده ام، اما موقع ران به طور خاص یک قسمت از متغیر های باینری را صفر نشان میدهد و قسمت دیگر متغیرهای باینری را یک نشان میدهد در واقع منطقی نیست جواب ها مشکل از کجاست؟
سلام
والا چه عرض کنم. اگه ارور نمیده و بصورت نرمال داره حل میشه، اینکه یه متغیر بصورت غیر منطقی جواب داده یعنی اینکه تو مدلسازی، عدد دهی و یا کد نویسی مشکل دارین. شما باید مدلسازی و کد نویسی رو بارها و بارها چک بکنین تا به جواب برسین. دنبال این سوال باشین. چرا عدد نگرفته و چه تغییری ایجاد کنم تو مدلسازی که عدد بگیره. کمک دیگه ای نمیتونم بهتون بکنم
سلام لطفاً راهنمایی کنید:
model LRPSPD/all/;
option optca=0,optcr=0,mip=cplex;
solve LRPSPD using mip min zz;
display x.1,y.1,z.1,u.1,v.1;
لطفا راهنمایی کنید ؟
model LRPSPD/all/;
option optca=0,optcr=0,mip=cplex;
solve LRPSPD using mip min zz;
display x.1,y.1,z.1,u.1,v.1;
سلام
چه راهنمایی ای؟
سلام چرا دیدگاه های جدید دیگه نمایش داده نمیشه؟؟؟من از کجا بدونم که جواب دیدگاه من داده شده یا نه؟
سلام
اشتباهی رخ داده بود مجددا اصلاح شد.
ممنونم بابت فیدبک
سلام توان را چه جوری میشه توی گمز تعریف کرد؟
سلام
با تابع پاور میشه.
باسلام .ممنون که جواب دادین.من به جای if از$استفاده کردم:Eq_cost(gen).. c(gen)$(d(gen,’pmin1′)<=p(gen) and p(gen)<=d(gen,'pmax1'))=e=d(gen,'alfa')+d(gen,'beta')*p(gen)+d(gen,'gama')*(p(gen)*p(gen))
+c(gen)$(d2(gen,'pmin1')<=p(gen) and p(gen)<=d2(gen,'pmax1'))=d2(gen,'alfa')+d2(gen,'beta')*p(gen)+d2(gen,'gama')*(p(gen)*p(gen));
این رو فقط موقع حل میگه با dnlpحل کن.به جای dnlp ، nlp گذاشتم .این بار این ارور میده که دستور$اجازه نداره(ارور57)endogenios $ operatio do not allow.]چیکارباید کنم؟ممنونم
سلام
دلار و if مفاهیم یکسانی دارن و جفتشون شرط محسوب میشن.
کلا شرطی که متغیر توش وحود داشته باشه توسط گمز قابل حل نیست. در صورت نیاز به همچین شرطی، یا باید خطی سازی انجام بدین، و یا اینکه از تابع ifthen استفاده کنین. که سالورهای محدودی می تونن حلش کنن تو گمز
سلام ارور 57واسه چیه؟
سلام
متن ارور رو بذارین. کسی حفظ نیست شماره رو.
باسلام ارور149 واسه چی میده؟ممنونم
if(p(gen)=g=pmin1(gen) and p(gen)=l=pmax1(gen),
total_cost=e=total_cost1);
else(p(gen)=g=pmin2(gen) and p(gen)=l=pmax2(gen)),
total_cost=e=total_cost2);
);
سلام
دستور if تو محدودیت ها قابل استفاده نیست. یا باید خطی کنید یا از iifthen استفاده کنید که سالورهای مختص به خودش رو هم داره
باسلام وعرض خسته نباشید.سوالی ازخدمتتون داشتم:
یه کدی میخام بنویسیم دوضابطه ای با محدودیت منتها به اروری برخورد کردم .ارور143و149) دردستورif و محدودیت ظاهر می شود .ممنون میشم کمکم کنید .
sets
gen number of generators /1,2,3/
cost_coef name of cost curve coefifcients /alfa,beta,gama/;
parameter
pmax(gen) maximum power generation
/1 100
2 100
3 100 /
pmin(gen) minimum power generation
/1 20
2 20
3 20 /;
table d(gen,*) value of cost curve coefifcients
alfa beta gama pmin1 pmax2
1 120 12 0.036 20 60
2 180 9 0.06 20 40
3 150 6.99 0.19995 20 50 ;
table d2(gen,*) value of cost curve coefifcients
alfa beta gama pmin3 pmax4
1 294.6 4.5 0.1125 60 100
2 236 5 0.1249 40 100
3 475 3 0.15 50 100 ;
;
parameter L load of network in MW ;
L=100;
variables
p(gen) power generation of each generator
c(gen) power generation cost of each generator
total_cost1 total cost1 of power generation
total_cost2 total cost1 of power generation
total_cost
equations
Eq_cost1(gen) cost of each generator
eq_cost2(gen) cost of each generator
Eq_pmax(gen) maximum power limit at each generator
Eq_pmin(gen) minimum power limit at each generator
Eq_powerbalance the powerbalance in the network
Eq_total_cost1 define objective function
Eq_total_cost2 define objectivefunction
Eq_total_cost define objectivefunction ;
eq_cost1(gen)..c(gen)=e=d(gen,’alfa’)+d(gen,’beta’)*p(gen)+d(gen,’gama’)*(p(gen)*p(gen));
eq_cost2(gen)..c(gen)=e=d2(gen,’alfa’)+d2(gen,’beta’)*p(gen)+d2(gen,’gama’)*(p(gen)*p(gen));
Eq_pmax(gen).. p(gen)=l=100;
Eq_pmin(gen).. p(gen)=g=20;
Eq_powerbalance.. sum(gen,p(gen))=e=L;
eq_total_cost1..total_cost1=e= sum(gen,(d(gen,’alfa’)+d(gen,’beta’)*p(gen)+d(gen,’gama’)*p(gen)*p(gen)));
eq_total_cost2..total_cost2=e= sum(gen,(d2(gen,’alfa’)+d2(gen,’beta’)*p(gen)+d2(gen,’gama’)*p(gen)*p(gen)));
if(p(gen)=g=pmin1(gen) and p(gen)=l=pmax1(gen),
total_cost=e=total_cost1);
else(p(gen)=g=pmin2(gen) and p(gen)=l=pmax2(gen)),
total_cost=e=total_cost2);
);
model economic_dispatch/all/;
solve economic_dispatch using nlp minimizing total_cost1;
display p.l,c.l,total_cost.l,Eq_powerbalance.m,L;
سلام
یک جای دیگه هم مطرح شده بود و همونجا رو لطفا چک کنین.
سلام وقت بخیر، من گمز رو که ران میکنم بدون ارور برای محدودیت ها اجرا میشه اما توی اون صفحه ای که نتایج رو میاره برای یک محدودیت None مینویسه ولی برای یکی دیکه عددهای منفی میاره اما خود گمز هیچ اروری رو نشون نمده مشکل از کجاست؟
—- EQU Eq06
NONE
—- EQU Eq07
LOWER LEVEL UPPER MARGINAL
1 -INF -8100.000 -6228.000 .
2 -INF -8100.000 -7006.000 .
3 -INF -8100.000 -5697.000 .
4 -INF -8100.000 -5387.000 .
5 -INF -8100.000 -6240.000 .
6 -INF -8100.000 -7088.000 .
7 -INF -8100.000 -5769.000 .
8 -INF -8100.000 -5418.000 .
9 -INF -8100.000 -6223.000 .
10 -INF -8100.000 -7073.000 .
11 -INF -8100.000 -5802.000 .
12 -INF -8100.000 -5396.000 .
سلام
این محدودیت عملاً لحاظ نشده در مدلسازی. به عنوان مثال من یه محدودیت می نویسم که به ازای هر i کمتر از t برقرار باشه. گمز هم میاد شرط رو بررسی میکنه، اگه همچنین i ای رو تونست پیدا کنه، طبیعتا محدودیتش هم می نویسه و الی اخر. اگر هیچ i ای که تو شرط بالا صدق کنه پیدا نشد، محدودیت عملا باز نمیشه توسط گمز. یعنی وجود نداره
خیلی ممنون
یه سوال دیگه ای هم داشتم همین مشکل رو برای متغییرهای باینری هم نشان میده یعنی توی محدودیت ها متغیر باینری را اعمال نمیکنه مثلا یا به جای صفر و یک عددهای منفی بزرگ میذاره یا اینجوری نمایش میده:
20000 * ycb(d) =l= qb(d);
ycb باینری است
Eq11(1).. – 2365*ycb(1) =L= -15 ; (LHS = 0, INFES = 15 ****)
این رو نشون میده وقتی باینری رو توی محدودیت میذارم
این که منی نیست. میگه منفی یه عدد کمتر از منفی یه عدد دیگه ست. مشکلی نداره این محدودیت.
سلام
یعنی چی عدد منفی میذاره؟ کجا رو دارین چک میکنین؟
در مورد متغیر باینری اینم باید اضافه کنم که وقتی توی محدودیت هست گمز اون محدودیت را طبق فرموده شما لحاظ نمیکنه ولی وقتی باینری را برمیدارم همون محدودیت none میشه
یه سوال دیگه داشتم
توی محدودیت ها اگه متغیر باینری اضافه کنم مثل جدول بالا را میاره و اگه اضافه کنم محدودیت none میشه یه حالت دیگه ای هم داره اونم اینکه وقتی متغیر باینری رو اضافه میکنم توی نتایج باینری رو به جای صفر و یک عدد های منفی بزرگ نشون میده یا اصلا اون متغیر باینری توی محدودیت به صفر و یک تبدیل نمیشه همینجوذی به عنوان یک پارامتر میاره
cabmin * ycb(d) =l= qb(d);
مثلا اینجا ycb باینری هست وقتی ران میشه توی این محدودیت بقیه موارد عدد میگیرن اما ycb همینجوری میمونه
سلام
شما جای اشتباه رو دارین نگاه می کنین. اینی که میگین اصطلاحا extend شده محدودیت هست. تو این حالت گمز میاد اسم خود متغیرها رو می نویسه ولی بقیه که پارامتر هستن رو عددشون رو میذاره. بقیه محدودیت هاتون هم همینجوریه اگه چک کنین.
این پست ها رو هم بخونین.
خروجی
Equation Listing
Solution Report
سلام برای این خط به چه علت ارور 148 را میدهد؟
سلام
متن خطا رو دقت کنید:
[CSS]
dimension different symble is refrenced with more /less indices as declared
[/CSS]
یعنی شما یه نمادی رو تعریف کردین با یه سری اندیس، ولی وقتی داخل محدودیت دارید ازش استفاده می کنید، اندیس رو عوض کردین. اینجاست که بهتون ارور میده ابعاد رو اصلاح کن
سلام وقت بخیر خطای 409 برای این خط نشان میدهد مشکل چیست؟
Eq28(t).. 0=l= pch(t) =l= xch(t) * pmaxch;
سلام
محدودیت های این شکلی رو باید به دو محدودیت تبدیل کنین.
سلام وقتتون بخیر
یک مشکل دیگری هم که دارم وقتی داده ها را از اکسل به گمز فراخوانی میکنم ارور 502 و 510 را میدهد مشکل از کجاست؟با تشکر از پاسخگویی شما
سلام
مشکل ادرس دهی دارین. دقت کنین که دقیقا منطبق با قواعد فراخونی میکنین.
سلام توی کد گمز خطای 149 را برای این خط نشان میدهد معنی این ارور چیست و چگونه میتوانم آن را رفع کنم؟
objective1.. f1 =e= cinv + cnpv + cem – inc + sum(t, penc * umc(t,d) + penh * umh(t,d) + pene * ume(t,d));
سلام
شما روی d نه سیگما بستین نه تو صور عمومی معادله بهش اشاره کردین
با سلام و احترام
جناب محمودی جسارتا ایراد این کد کجاست که چند تا ارور 149 (uncontrolled set entered as constant) را می دهد؟ ممنون از شما
سلام
وقتی دستور if میارید، باید از قبل اندیس هایی که تو شرط if استفاده میشن رو تعیین تکلیف کرده باشین. مثلا قبلش زده باشین loop((i,j) . یعنی کل شرط داخل لوپ باید باشه
با سلام
جناب محمودی جسارتا کد صحیح برای مثلا دو مجموعه داشته باشیم به این صورت A=(1,2)
B=(3,4) چگونه میشه که تک تک اعضای مجموعه A در مجموعه B ضرب شوند و جواب هر ضرب هر چه شد در یک ضابطه بیاید مثلا اگر از1 بزرگتر شد جواب بشه3 و اگر بین 1 تا 4 بود جواب بشه 5 و اگر بزرگتر از 4 بود جواب بشه 6. و در آخر تمام جوابها رو به ما نشون بده.
خیلی ممنون میشم به بنده کمک کنید حقیقتا انقدر کد خودم ایراد داشت که دیگه ارور هاشو نمیشد بشماری.
تشکر از شما…
سلام
منظورتون از مجموعه اینه که A,B مجموعه و set هستن یا پارامترن؟
وقتتون بخیر
بله جناب محمودی منظورم اینه که Aو B مجموعه وset هستند.
این مثال رو ببینید.
در اینجا val یک attribute هست برای مجموعه ها که مقدارشون رو برمیگردونه. سایر شروط رو با if else می تونین وارد کنین.
سلام وقت بخیر
ارور 149 چندتا واسه این خط محدودیت دارم میشه بگین مشکلش کجاست
سلام
صور عمومی یادتون نره.
خیلی ممنون متوجه شدم
:/model art /all/
:solve model using minlp minimizing z
:display x.l, y.l
میشه این آخر کدنویسیم رو هم راهنماییم کنید ایرادش کجاست ارور 2و748و141 میده
solve art
باید اسم مدلتون رو بنویسین.
استاد انتهای مدل من اینه:
:/model maghale /all
:solve model maghale using minlp minimizing z
:display x.l, y.l
که خطای 2و748و141 رو میده و مربوط به همینجای کدنویسی هست ارورها
solve maghale using…
کلمه model رو تو دستور سالو پاک کنید.
سلام من یه مدل تحلیل پوششی داده ها دارم داخل گمز وارد میکنم امکانش هست مدل را برای شما ارسال کنم کمکم کنید
سلام جناب محمودی. یه سوال دارم! دوتا تابع هدف دارم که تک به تک اجرا میشن اما وقتی که از روش وزنی ال پی متریک میرم پیغام 409 رو میده که مربوط به اولین محدودیت است.حتی اگه محدودیت رو بردارم باز 409 برای محدودیت بعدی و بعدی و بعدی و… ظاهر میشه! مشکل کجاهست؟ سمی کالن و … رو دارم و مشکلی نمیبینم!
سلام
لطفا کد رو کامنت کنین
سلام. آقای محمودی خطای ۱۲۲ برای چیه؟ رو تمام پارامترها و متغیرها این خطا رو دارم.
سلام
مشکل از ابعاد هست. نمادی که تعریف میکنین دقت کنین با همون اندیساش تو مدل استفاده بش
سلام و احترام و تشکر از سایت خوب شما من یک مدل دوسطحی را دارم با گمز حل می کنم با emp به شرح ذیل
Model bilevel /all/;
$onecho > “%emp.info%”
bilevel P_lem P_wem P_wgm
OBJ_UL
C1_UL
C2_UL
C3_UL
C4_UL
C5_UL
C6_UL
C1_LI
C2_LI
C3_LI
C4_LI
C5_LI
C6_LI
C7_LI
C8_LI
C9_LI
C10_LI
C11_LI
C12_LI
C13_LI
C14_LI
C15_LI
C16_LI
min objin Ipvinv Iwinv Ichpinv Isttvinv E LSIh LSIe Pcpv Pcw Pdch Pch
OBJ_LL
C1_LL
C2_LL
C3_LL
C4_LL
C5_LL
C6_LL
C7_LL
C8_LL
C9_LL
C10_LL
C11_LL
C12_LL
C13_LL
C14_LL
C15_LL
C16_LL
C17_LL
C18_LL
C19_LL
C20_LL
$offecho
*$offtext
*option keep=1;
*
solve bilevel using EMP minimizing objout ;
ولی هر کاری می کنم این ارور را میده . تو فاروم گمز هم مطرح کردم منها از پاسخ عملا متوجه نشدم چطور باید کد لوپ را بزنم. ممنون میشم راهنمایی فرمایید
https://forum.gamsworld.org/viewtopic.php?f=11&t=11797
سلام و وقت بخیر
ببخشید یه سوالی . من مدلم رو ران میکنم بعد از 5 دقیقه اون مقدار گپی که نشون میده صفر میشه ولی پروسه حل متوقف نمیشه . خودم حل رو متوقف میکنم تو خروجی مقدار گپ نسبی صفر شده ولی گپ مطلق مقدار 0.000011 گرفته option ca=0 را هم حذف کردم بازم برطرف نشد . خود گمز بعد از 38 دقیقه همون جواب را نشون داد که تو 5 دقیقه محاسبه کرده بود . چطوری این مشکل را بر طرف کنم ؟
با سلام
علت خطای exit code=3 چیست؟ مشکل در هدف زیر است که با وجود قرار دادن مقدار کوچک مانند 0.000001 جهت صفر نشدن لگاریتم مجدد با همین خطا مواجه میشوم.
obj2.. o=e=sum[(i,t),(log10( (NERR(‘1’,i,t)*CPI(i,t)/CCPI(‘1’,t))+0.00000001) -log10( (NERR(‘1’,i,t-1)*CPI(i,t-1)/CCPI(‘1’,t-1))+0.00000001)) ];
با تشکر از راهنمایی شما
بعد از حدود 25 دقیقه exit code =3 میده.
وقتی ابعاد مسئله را کمی کوچکتر میکنم، بعد از 2 ساعت و 15 دقیقه به جواب میرسه ولی در این ابعاد که کمی بزرگتر از ابعاد قبلی است بعد از حدود 25 دقیقه exit code =3 میده.
با سلام و تشکر از راهنماییهای شما
من مدلی را در گمز در ابعاد کوچک و متوسط اجرا کردم، اما در ابعاد بزرگ بعد از چند دقیقه exit code =3 میدهد. هر کاری کردم اما مشکل را نفهمیدم.
لطفا راهنمایی کنید.
سلام
چند دقیقه؟
دلایلی زیادی داره. که همشون میگن که مسئله حل نشده
بعد از حدود ۲۵ دقیقه exit code =3 میده.
وقتی ابعاد مسئله را کمی کوچکتر میکنم، بعد از ۲ ساعت و ۱۵ دقیقه به جواب میرسه ولی در این ابعاد که کمی بزرگتر از ابعاد قبلی است بعد از حدود ۲۵ دقیقه exit code =3 میده.
سلام
سالورهای مختلف رو چک کنید اگه برا سایز بزرگ جواب نمیده. شایدم کلا نتونه بزرگ ها رو جواب بده
سلام کد گمزم با اعداد غیرواقعی اجرا میشه اما وقتی اعداد واقعی رو وارد کردم این خطا ها رو داد. لطف میکنید بگید خطای 122 و 148 و 257 به چه علت رخ دادند؟
122 One dimensional set expected
148 Dimension different – The symbol is referenced with more/less
indices as declared
257 Solve statement not checked because of previous errors
سلام
مشکل از ابعاد هست. نمادی که تعریف میکنین دقت کنین با همون اندیساش تو مدل استفاده بشه
سلام، عرض جدول ورودی کد نویسی من خیلی زیاد هستش و 410 هزار واحد شده، اما بعد اجرا گمز ارور میده که عرض مجاز 80 هزار واحد هست، بعضیا گفتن مشکل از لایسنس هستش؟
نظر شما چیه؟ چیکار باید بکنم؟
سلام
من حقیقتش با داده های به این شکل بزرگ مستقیما کار نکردم! علت اینکه جدول شما بزرگه چیه؟ امکان فراخوانی از اکسل رو تست کردین؟
با سلام، اگر بخواهیم محدودیت از نوع ماکس یا مین را در بین سایر محدودیتهای یک مدل بنویسیم در گمز و بخواهیم مدل خطی بماند چگونه باید نوشت؟
به طور مثال
(FT(i)=max x(i,q)*T(q به طوری که به ازای هر i تعریف شده باشه، یعنی در هر بار ابتدا i را عدد بگذارد و به ازای این عدد رابطه را برای q از ۱ تا انتها پیش ببرد مثلا i=1 در نتیجه (FT(1 بدست بیاید سپس i=2 و همان روند تکرار شود تا آخرین i
سلام
باید خطی سازی انجام بدین.
یه روشش اینه که وقتی که FF برابر ماکسیمم این عبارات باشه، پس از تک تکشون هم بزرگتره. پس محدودیت به شرح زیر تغییر میکنه:
فقط دقت کنید که جهت تابع هدف شما طوری نباشه که مدل ترجیح بده که FT هی بزرگتر بشه. بعد این خطی سازی مدل رو حل کنین. بعد چک کنین که آیا FT برابر ماکسیمم هست واقعا یا خیر.
باسلام وتشکر-من یک برنامه گمز را اجرا می کنم خطای زیر را نوشته و برنامه متوقف می شود
Exit code = 3 لطفا راهنمایی بفرمایید
سلام
دلایل متفاوتی می تونه داشته باشه. ایمیل کنید برا سایت
ارور سافیکس میده رو سابپرابلم درصورتی که سابپرابلم رو بدون الگوریتم ران میکنم جواب میده
سلام
ارور سافیکس یعنی مثلا شما به جای x.l نوشتین x
سلام من یک الگوریتم پیاده کردم تو گمز، الگوریتم بندرز، ولی یک سری ارور میده که اصلا سردرنمیارم. میشا لطفا بهم کمک کنید؟
سلام
چه ارورایی
سلام
وقتتون بخیر
به مدلی رو در گمز پیاده کردم که توالی تعدادی کار هست
وقتی مدل رو حل کردم دیدم تا 36 ثانیه همه کارها انجام میشه
ولی وقتی t یا همون افق زمانی از 50 به 100 تغییر میدم جواب بهینه از 84 به 70 تغییر میکنه
مشکل کجاست ؟
چیکار باید بکنم تا این مسئله حل بشه
سلام
افق زمانی رو چجوری تعریف کردین؟ مشکل از مدلسازیه ظاهرا. توضیحات بیشتری بدین.
— Job dual.gms Start 01/01/20 20:41:32 24.1.2 r40979 WEX-WEI x86_64/MS Windows
*** Unable to open input file (RC=22) D:\???????\??????\?????? ???? ?????\dual.gms
*** SysMsg: Invalid argument
*** Status: Terminated due to parameter errors
— Job dual.gms Stop 01/01/20 20:41:32 elapsed 0:00:00.000
Exit code = 6
سلام ، موقع باز کرد مدل از آدرس اسم مدل کلا علامت سوال میاد و خطای بالا رو میده.
ممنون میشم جواب بدین
سلام
متن کد رو تو یه فایل دیگه کپی پیست کنین. اسم انگلیسی هم براش بذارین. مجددا ران کنین و نتیجه رو بگید
من هم این مشکل رو داشتم راهنمایی شما رو انجام دادم اما نتیجه نداد
همیشه اسم فایل گمز و مسیری (فولدرها) که در اون ذخیره شده رو انگلیسی بذارید.
اگه متن کد رو نمی بینید، با یه نرم افزار دیگه مثل Notepad یا notepad++ بازش کنید و متن رو کپی کنین تو یه فایل جدید گمز. مجددا اسم انگلیسی بذارید داشته باشه
سلام
در این عبارت فقط u متغیر هست و بقیه پارامتر هستند اما ارور 125 میده. اگر امکان دارد راهنمایی بفرمایید. ممنون
محدودیت به ازای چی برقراره؟
سلام
Error 97 in C:\Users\ASuS\Documents\GAMSStudio\workspace\price model.gms
Explanatory text can not start with ‘$’, ‘=’, or ‘..’
Error 2 in C:\Users\ASuS\Documents\GAMSStudio\workspace\price model.gms
Identifier expected
این ارور ها رو چ طور میشه برطرف کرد.
ممنون میشم راهنمایی کنید
سلام
آدرس دهیتون درست نیست.
با سلام
من یک مدل دوهدفه رو کد کردم و یک بار از روش معیار جامع و یک بار هم از روش آرمانی استفاده کردم و در هر دو حالت هیچ خطایی نشون داده نمیشه اما زمانی که دستور display میزنم و run میگیرم در صفحهslt هیچ قسمتی برای display موجود نیست.
بنظرتون مشکل کجاست؟؟
سلام
این یعنی مدل حل نشده. solver status و model status رو چک کنید. و چک کنید که لایسنس دارید یا خیر.
سلام .ببخشیدبدجوری گیر کردم به کمکتون نیاز دارم ممنون میشم راهنماییم کنید در کد گمزیک پارامترi,j)C) دارم که میخوام از ۰تا ۸۰با طول گام ۱۰جایگذاری کرده و مقدار تابع هدف بررسی کنم من از forاستفاده میکنم ولی چون پارامترم دو اندیس ارور میده ،زیاد در استفاده از حلقه ها وارد نیستم لطفا راهنماییم کنید
سلامپمنظورتون از این جاگذاری و طول گام چیه
سلام وقتتون بخیر میشه راهنماییم کنید که کجای این برنامه باعث غیر خطی شدن اون میشه ممنونتون میشم.
set i/1*12/;
scalar G/600/;
parameters
n(i)/1 30
2 18
3 22
4 21
5 22
6 21
7 21
8 13
9 20
10 23
11 21
12 20 /
d(i)/1 3000
2 2500
3 4000
4 6000
5 8000
6 12000
7 15000
8 12000
9 10000
10 8000
11 4000
12 3000/
s(i)/1 600
2 500
3 800
4 1200
5 1600
6 2400
7 3000
8 2400
9 2000
10 1600
11 800
12 600/;
variable z;
positive variables H(i),DP(i),k(i),X(i),O(i);
equation
obj
limit1
limit2
limit3
limit4
limit5
limit6
limit7
limit8
limit9
;
obj..z=e=(sum(i,H(i))*1/card(i))*30+sum(i,K(i))*15+sum(i,O(i))*10+
(sum(i,X(i)-X(i-1))/10)*5000;
limit1(i) ..X(i)=l=400;
limit2(i) ..O(i)=l=80*n(i);
limit3(i)$(X(i)*n(i)<DP(i)) ..O(i)=g=0;
limit4(i)$((X(i)*n(i)+O(i))<DP(i)) ..K(i)=g=0;
limit5(i)$((DP(i)/n(i))480) ..X(i)=e=480;
limit7(i) ..H(i)=e=X(i)*n(i)+O(i)-DP(i);
limit8(i)$(ord(i)=1) ..DP(i)=e=d(i)+s(i)-G;
limit9(i)$(ord(i)>1) ..DP(i)=e=d(i)+s(i)-s(i-1);
model aa/all/;
solve aa using QCP minimizing z;
display z.l,x.l,H.l,O.l,K.l;
شما اول باید یاد بگیرید که سوال درست بپرسید
کی به شما گفته غیرخطیه ؟
این برنامه غلطه اصلا
سلام
من در کدم از حلقه forاستفاده کردم که ۱۱مقدار تابع هدف مختلف به ازای تغییر یکی از پارامترهای مدل از ۱۵۰۰۰تا ۲۵۰۰۰با طول گام ۱۰۰۰بدست اومده حالا میخوام همه ی این ۱۱تابع هدف در یک پارامتر ذخیره بشن که خروجی همه در یک ستون نمایش داده بشه میشه راهنماییم کنید ممنون میشم
سلام
ترجیحا از loop استفاده کنین به جای for
این مثال رو ببینید:
سلام وقت بخیر
من هنگام اجرای گمز با دو کد خطای 66 و 256 مواجه می شوم در صورت امکان مرا راهنمایی بفرمائید.
;Solve LCCGE using mcp
سلام
یاتون باشه که:
– هر معادله ای که داخل دستور model استفاده میشه، باید حتما اولا اسمش توی equations باشه (equation decleration) و هم فرمولش با دو نقطه نوشته شده باشه (equation specificaton).
– هر نمادی مانند set,parameter, table که در مدل استفاده میشه باید حتما بهش از قبل مقدار دهی شده باشه.
با عرض سلام خدمت شما و با تشکر از راهنماییهای شما
من محدودیت زیر رو وارد گمز که میکنم ارور 8 رو میده در حالی که من تمامی پرانتزهای این محدودیت رو به طور صحیح گذاشتم ولی بازم نمیدونم که چرا این ارور رو میده.
در ضمن امید ریاضی و واریانس رو چطوری میشه در گمز محاسبه کرد؟
سلام
برا چک کردن پرانتز ها، مقداری مرتبط بنویسین. هر sum رو تو یه سطر مثلا. از منوی بالای گمز میتونین پرانتز ها رو چک کنین که کدوم بسته شده کدوم نه.
سوال دوم: فرمولش رو بنویسین.
با عرض سلام و خسته نباشید و تشکر بابت سایت و کمک هاتون
من محدودیت زیر را
ew(i)+ewb(i)≤ 0 ∀ V(i)≤V1 or V(i)≥V3 ,i
ew(i)+ewb(i)≤1/2 p ∀ V1<V(i)≤V2 ,i
ew(i)+ewb(i)≤ 1570 ∀ V2<V(i)≤V3 ,i
به این صورت فرمول نویسی کردم .
t1(i)$ (V(i)=l=V1 or V(i)=g=V3 ..ew(i)+ewb(i)=l=0;
t2(i)$ (V(i)=g=V1 and V(i)=l=v2) ..ew(i)+ewb(i)=l=0.5*p;
t3(i)$ (V(i)=g=V2 and V(i)=l=v3) ..ew(i)+ewb(i)=l=1570;
آیا درسته؟ البته خطاهای زیر رو هم داشته .
8 = ')' expected.
36 = '=' or ':=' or '$' expected.
409 = unrecognized item-skip to find a new statement looking for ';' or key word to get started again.
میشه تو رفع این خطاها هم کمکم کنید؟
ممنون
سلام
سلام، وقتتون بخیر
درباره ارور 790 برای تعریف scenario dictionary چطور باید عمل کرد؟
سلام
کد رو به ایمیل سایت ارسال کنید.
با سلام، وقتتون بخیر
من کد یک مدل رو در گمز وارد کردم ولی در محدودیت eq1 ارور 154 رو نشون میده. چطوری میشه این ارور رو برطرف کرد.
سلام
شما تو صور عمومی این محدودیت فقط i.h رو اوردین، بعد گفتین h و k فلان رابطه رو دارن. گمزم میگه k دیگه چیه. اینو از کجا اوردی من که نمیدونم چیه!
باید این شرط رو ببرین تو سیگما هایی که روی k بستین. اونجا باید شرط بذارین، نه اول کار
فرضا:
خیلی ممنون از راهنماییتون
مشکلم برطرف شد
سلام، وقتتون بخیر
من یک نوشتم ولی متاسفانه جواب بهینه صفر میشه میشه من کد رو براتون بفرستم ببینین چطوره؟
سلام
در صورتی که مشکل نشدنی بودن نداشته باشه، اگه صفر بشه. خودش یه گام رو به جلوه!
احتمالا یا مدلتون صحیح نیست. یا اینکه داده هاتون مناسب نیست. باید دقیق تحلیل کنین. بنده راهنمایی ای نمیتونم بکنم
سلام عرض ادب
من تو این برنامه تازه کار هستم میخواهم جواب یک مسأله بهینه سازی را دریافت کنم تو برنامه گمز نوشتم موقع اجرا خطاهای رخ داده که نمیدونم چطوری برطرف کنم. مثالش
سلام
شما باید اولین ارور رو رفع کنین. دونه دونه. هر بار هم مجدد ران کنین. اولین ارور اینه که شما به جای sum احتمالا نوشتین sun. بعد sum رو هم نبستین. برانتز یادتون رفته. …
سلام وقت بخیر
برای من اروری آبی رنگ با مضمون زیر ایجاد شده:
[Error at line 104: division by zero]
خط 104 ، خط اول تابع هدفم هست:
[GAMS Code]
[Obj.. Z=e=Sum((i,j),P(i)*X(i,j)) +
Sum((i,j),T(i,j)*(X(i,j)/V(i))) +
Sum((i,j),H(j)*X(i,j)/2) +
Sum((i,j),O(j)*(D(j)/X(i,j))) +
Sum((i,j),M(i,j)*(a(i,j)*X(i,j))) ;]
لازم به ذکر ست که متغیر تصمیم بنده X بوده و سایر مقادیر به صورت پارامتر تعریف شده اند. این ارور در حالی رخ می دهد که بنده هیچ مقدار صفری را برای آنها اختصاص ندادم.
ممنون میشم راهنمایی بفرمایید.
معنی تقسیم بر صفر چی میتونه باشه ؟
سلام ارور ۸ در گمز چیه ؟
سلام
ارور مربوط به سیستم گمزه. متن خطا رو باید واضح تر بفرستین. و اینکه کجای کد شما هست.
با سلام خدمت شما.من در قسمت تایع هدف به مشکل برخوردم و ارور 149 رو میده یکبار هم ارور داد برای تکرار sum . sum های اضافه رو که حذف کردم اون ارور دیگه نیمد ولی این ارور که برای مجموعه ها میده رو من نمیتونم برطرف کنم.
خیلی خیلی ممنون میشم من رو راهنمایی کنین
سلام
برای x2,x3 برانتز اضای گذاشتین.
سلام من یه کد نوشتم که exit code =3 میده و مسئله رو حل نمیکنه و هر چی کد رو بررسی میکنم متوجه نمیشم که کجاش باعث بی کران شدن میشه! میتونین کمکم کنید لطفا
سلام
دلایل متفاوتی ممکنه این خطا رو ایجاد کنن. بی کران نیس هنوز. کدتون باید بررسی بشه. abortی چیزی استفاده کردین؟
میتونم کد رو براتون ایمیل کنم؟
با سلام و خسته نباشید بابت سایت خوبتون و تشکر ویژه از استاد محمودی بزرگوار بابت فعالیت گرمشون، اقای محمودی عزیز کد بنده دو تا مشکل دارد اول اینکه اروراش ب رنگ ابی و نوشته تقسیم بر صفر شود. بنده هم با راهنماییهای جنابعالی در مخرج معادلاتی که این ارور را داده یک باربعلاوه یک دهزارم و یک بار بعلاوه اپسیلون کردم بازم رفع نشد. دوم اینکه یکی از معادلات که این ارور رو داده معادله اصلا تقسیم نیست بلکه تفریق می باشد و مخرج ندارد تا بعلاوه یک عدد کوچک شود.بنده خیلی وقت در گیر این ارورا هستم ممنون میشم اگر راهنمایی بفرمایید. بازم ممنون بابت وقتی که میزارید.
سلام
مچکرم. توضیحات مناسب نیست. کد گمز رو ارسال کنین به ایمیل سایت.
سلام
خطای 50 رو چطور باید از بین ببریم؟
میگه:
loop controlling index appears in model equations
در صورتی که هر چی چک می کنم؛ این اتفاق نیفتاده
فرض کنید شما equation مطابق زیر دارید
شما نمی توانید عبارتی مثل زیر داشته باشید وگرنه همان خطایی که گفتید را خواهید گرفت
چزا ؟
چون ست j در مدل شما به کار رفته است
راه حل آن :
یک ست با دستور alias برای j تعریف کنید و حلقه خود را روی ست جدید ببندید
سلام.من در کد زیر با خطای 36 مواجه میشم.ممکن است راهنمایی فرمایید ایراد در چیست؟
first clause .. sum(i, b(i)*x(i))=e=2;
سلام
شماره خطا رو کسی حفظ نیست. متنش مهمه.
احتمالا به این دلیل هست که اسم محدودیت با فاصله اومده. باید بچسبه به هم.
با سلام
من می خوام در گمز محدودیت ذیل رو تعریف کنم :
یک راننده با شمارنده m در طی دوره t به یک خودروی نوع g ، به یک خرده فروش r ومرکز توزیع j اختصاص داده شود .
آیا تعریف ذیل درسته؟ در غیر این صورت چطور باید بنویسمش ؟
ممنون میشم راهنمایی بفرمایید .
سلام
بقیه اندیس ها رو نگفتین، ولی طبق اینی که فرمودین صور عمومی ظاهرا فقط باید m,t باشه.
یعنی این شکلی میشه
بله.
سلام
سور عمومی برای اندیس ها به این شکل t=1 و t >1 و یا p > v که اخری V توی پارامترها هم هست چگونه باید توی قسمت equation بنویسم؟
const(….???….)
سلام
سلام خطای
UNABLE TO OPEN GDX FILE FOR $GDXIN از چه بابت هست. بنده کد یک پایان نامه رو هنگام ران گرفتن با این خطا مواجه میشم.
میشه لطفا راهنمایی بفرمایید
بی نهایت تشکر
سلام
شما یه اشتباهی تو ادرس دهی کردین. مثلا فایل اکسل یا gdx رو داخل دایرکتوری فعال گمز نذاشتین. یا کد ادرس دهیتون اشتباهه.
سلام. خسته نباشین. معنای ارور 55 و 256 در گمز چیه؟ چطور باید این خطاها را برطرف کنم؟
خیلی ممنون.
سلام
متن اولین ارور رو بذارین اینجا
سلام. خسته نباشین. معنای ارور 55 و 257 در گمز چیه؟ چون دیدم در مورد بعضی از ارور ها توضیح دادین مزاحمتون شدم. اگه راهنمایی کنین ممنون میشم.
سلام
خواهش میکنم.
متن ارور ها رو لطفا ارسال کنین.
با سلام
وقتتون بخیر
در رابطه با نحوه ی ارتباط بین گمز و متلب دچار مشکل شدم.
بعنوان مثال با توجه به روشی که مطالعه کرده بودم وقتی تو command window متلب تایپ میکنم
‘gdxWhos ‘solution یا مثلا وقتی از دستور ‘gdxInfo ‘solution استفاده میکنم با یه سری ارور مواجه میشم.
[]
‘undefiend function or variable ‘gdxWhos
Error using gdxInfo
Error in gdxOpenRead
[]
با سلام
من میخوام لینک بین متلب و گمز رو انجام بدم وقتی دستور
gdxInfo و gdxWhos رو توی متلب قسمت command window تایپ میکنم ارور میده
‘undefined function or variable ‘gdxWhos رو میده، نمیدونم چجوری حلش کنم.
طبق یه فیلم آموزشی داشتم پیش میرفتم که ارور میگیرم.
ممنون میشم راهنماییم کنین%%
سلام
وقتتون بخیر
من مدلم دو هدفه هستش و اهداف هم با هم در تضاد هستند ولی وقتی از روش ال پی متریک یا اپسیلون محدودیت میرم فقط یک نقطه جواب میده و نمیتونم پارتو رسم کنم.در صورتی که باید 10 تا نقطه پارتو بده.ممنون میشم راهنماییم کنید.
سلام
از حل صحیح مدل مطمئن بشین اول.
ثانیا ممکنه اونقدر فضای شدنی مسئله شما کم باشه که فقط همین یه نقطه رو به شما بده. جدول pay-off رو بهش دقت کنین. ببینین چه جوابابیی ارائه میده.
سلام.وقتتون بخیر.یک سوال از خدومتتون داشتم.یک مساله برنامه ریزی خطی دارم که بعد اینکه ران میشه خطای زیر رو میده
Row ‘equ_8(b1.b2)’ infeasible, all entries at implied bounds.
ممنون میشم راهنمایی کنید
سلام
این یعنی این محدودیت شما نشدنی هست. یعنی داده هایی که تو این محدودیت استفاده شدن به هم نمیخورن. یا فرمولش اشتباهه. مجددا تحلیلش کنین.
این هم دستور حل کردنم هست:
Solve sizing using MINLP maximizing NPV;
متغیر باینری دارم و از دستور ifthen هم تو تعریف یک تابع استفاده کردم.
سلام. وقتتون بخیر.
یه سوال از خدمتتون داشتم. من این خطا رو روی سطر مربوط به دستور solve دارم. هر کار هم انجام میدم، رفع نمیشه. خیلی ممنون میشم اگر راهنماییم کنید
Error 64: function called with non-constant argument
سلام
شما یه فانکشن استفاده کردین که جلوش متغیره. مثلا fact(x . گمز انتظار داره x یه ورودی مشخص باشه، در حالی که متغیر تعریفش کردین و ارور میده.
سلام
چطور میتونیم توان زیر را در گمز وارد کنیم :
x^0.23
سلام
علامت توان درگمز دو تا ستاره هست. **
با سلام و تشکر از سایت خوبتون
این محدودیت که اینجا می فرستم ، مربوط به توالی کارها در مسئله job shop هستش
و دو تا شرط رو باید با هم لحاظ کنه ولی ارور میده، ممنون میشم لطف بفرمائید راهنمایی
کنید.
CO13(t,k,i,j,f,g)$((O(i,k))and(ord(i)>= ord(j)) and (ord(f) ord(g)))
and $((ord(i)> ord(j)) and (ord(f) eq ord(g))) ..
keci*(1-Y(t,k,i,j,f,g))+ ST(t,k,j,f)- ST(t,k,i,g)=g= PT(t,k,i,g);
نه اتفاقا به اون and قبل از شرط دوم ایراد میگیره، و میگه که نباید میبود و به صورت
“..” یا ” :=”یا “$=” باید باشه ، ولی اونا رو هم که زدم بازم ارور میداد.
چند تا نکته:
تو شرط، ما یه دونه دلار باید داشته باشیم
برای هر شرط باید عباراتی نظیر < = داشته باشیم. تا میتونین کمتر از براکت و برانتز استفاده کنین. اینجوری ارورگیری راحت تر میشه
خیلی ممنون، لطف کردید.
با سلام و تشکر از سایت خوبتون
این محدودیت که اینجا می فرستم ، مربوط به توالی کارها در مسئله job shop هستش
و دو تا شرط رو باید با هم لحاظ کنه ولی ارور میده، ممنون میشم لطف بفرمائید راهنمایی
کنید.
سلام
Ord(f ord(g باید بینشون یه چیزی باشه
سلام .وقت بخیر
ببخشید کد من وقتی از نرم افزار اکسل یه فایلی فراخوانی میکنم ارور510,502 میده ،میشه لطفا راهنماییم کنیدممنون میشم
سلام
شماره ارور ها رو کسی حفظ نیست. لطفا متن ارور رو بفرستین.
سلام آقای محمودی وقت بخیر.تو دستور زیر چندتا سوال داشتم و اینکه خیلی کدش رو لازم دارم.ممنون میشم راهنمائی بفرمائید:
یک متغیر رندم دارم مثل fmکه به طور یکنواخت از بازه fm.lo(j)=l= (1+k(j))*fb(j))وfm.up(j)=g=(1-k(j))*fb(j)))مقدار میگیره. k(j)یک متغیر رندم هست که ازk(j)= uniform ((fm(u)-f(j))/fb(j) مقدار میگیره.روی .lo خطای 141 و172و142 میده بایدlo رو قبلش رو پارامتر تعریف کنم؟تعریف هم کردم دوباره خطا میگیره.
اصلا بخواهیم بگیم یک متغیر به طور رندم از بازه ای مقدار میگیره باید فرم بالا رو بنویسم؟سپاس فراوان.
سلام
شما نمیتونین برای یه متغیر همچین محاسباتی بنویسین. فقط باید بگین که مثلا fm متغر مثبت هست، و حد بالا و حد پایین براش بذارین.
دقت کنین که متغیر رندم نداریم. فقط پارامتر رندم داریم. ویژگی هایی نظیر .lo.fx,.up فقط برای متغیر استفاده میشه
سلام ممنون از پاسختون
من در کد زیر هم با ارور 149 مواجه شدم، میشه بفرمایید ایراد در کدام قسمت بوده؟ ممنون
constraint19(l,n,t)..sum(i,XL(i,l,t,s))+sum(m,XM(m,l,t,s))=l=Sa(l,n);
محدودیت به ازای ltns باید بر قرار باشه
سلام وقتتون بخیر
من در کدنویسی که دارم انجام میدم 2 تا متغییر مثبت دارم بصورت I (K,J) ,H(K,J) وقتی تعربفشون کردم به من خطای 195 رو میدهمیشه لطفا راهنمایییم کنید.
ممنونم
سلام
این ارور وقتی رخ میده که شما دوبار یه تعریف رو انجام بدین. مثلا یه بار h پارامتر هست یه بار متغیر