دوست عزیز سلام!
لطفاً برای پرسیدن سوال، یکی از پستهای سایت را انتخاب کرده و سوال خود را مطرح نمایید و تنها برای سفارش پروژه، همکاری و آموزش با ادمین در تماس باشید.
با سلام
جناب من مدلی غیر خطی دارم که در dicopt حلش میکنم
میخوام بدونم راهی وجود داره که من بتونم مقدار تابع هدف را در هر تکرار از گمز خروجی بگیرم
جایی که سالور dicopt مقدار تابع را در هر تکرار مینویسه و در نهایت مقدار بهینه رو معرفی میکنه من دنبال اینم که گزارش همه مقادیر تابع هدف رو برای همه تکرار ها گزارش بگیرم تا در گزارش اصلیم بیارم به نظرم بهش میگن performane curve سالور
سلام و ادب
چنین آپشنی من ندیدم. لطفا اگر پیدا کردین با ما هم در میون بذارین.
محمد
در اکتبر 20, 2023
سلام و وقت بخیر. در مورد نحوه خطی سازی پخش بار AC برای شبکه های شعاعی سوال داشتم که چه جوری باید این کارو کنم توی گمز؟
کلا برای چی خطی سازی میکنن؟ مگه جواب نهایی پخش بار AC غیر خطی با خطی یکسان نیست؟
با توجه به این نکته که ماهیت اصلی تمام پخش بار های AC غیر خطی است.
سلام دوستان، وقت بخیر.
سه تولید کننده به نام a،b و c داریم ، اگر a و b انتخاب شود هر کدام فقط 30 درصد مجاز هستند تولید کنند و اگر c انتخاب شود تا 40 درصد مجاز به تولید است ، محدودیت آن هم به صورت زیر می باشد
Pmin≤Pi≤Pmax
این جمله شرطی را چطور می توان در گمز نوشت ؟
سلام
با فرض اینکه xi انتخاب شدن تولید کننده i رو نشون بده:
X(i)*pmin(i)<=p(i)<=pmax(i)*x(i)
A
در جولای 18, 2023
یعنی pminو pmaxهم باید به صورت متغیر نوشته شود ؟
محمودی
در جولای 19, 2023
نه برای هر i مقادیر مشخصی داشته باشن. مثلا حداکثر برای اولی برابر با 20 هست و دومی برابر با 30.
امین
در می 7, 2023
سلام آقای دکتر خسته نباشید
بنده می خواستم در گمز کد نویسی کنم برای یک مسئله مربوط به رشته برق انجام بدم. تو این مقاله گگفته شده که از روشش KKT اسفاده شده است. متاسفانه من هر چقدر در مورد این روش خوندم موجه نشدم که چطور این رو در کدنویسیم دخیل کنم. لطفا میشه راهنمایی کنید بنده رو. آدرس ایمیل بنده: amin.rahimi1367gmail هستش اگر لطف کنید در ایمیل بهم اسخ بدید ممنون میشم.
با تشکر
سلام و ادب
متاسفانه من فایل آموزشی ندارم برای kkt. فیلم و جزوه آموزشی هست تو اینترنت سرچ بزنین پیدا میشه. چند تا مقاله هم ببینید کمک میکنه.
A
در مارس 3, 2023
سلام، وقت بخیر.
در یک مسأله مکان یابی،اگر تابع هدف سرمایه ای مثلا کاهش هزینه نصب تجهیز و یک تابع هدف بهره برداری مثلا کاهش هزینه تولید توان را داشته باشیم، برای حل آیا لازم است از روش وزن دهی آن ها را ترکیب کرد و در گمز نتیجه بهینه را یافت؟ یا اینکه بدون وزن دهی هر دو را با هم جمع کنیم کافی است؟ و اینکه روش lp- metric برای حل دو تابع هدف که یکی خطی و یکی غیر خطی است قابل اجراست؟
سلام و ادب
ببینید علت جدا کردن اهداف جنس اونها هست. اگر این دوتا هزینه قابل جمع کردن هستن، یک هدفش کنید. مثلا اگر یکی حدودا 100 میشه و یکی هم حدودا 50، دیگه نیازی نیست جدا بشن. معمولا هم باید با هم بیان.
اگر چند هدفه شد، باید با روش های مختلف نظیر وزن دهی، اپسیلون، ال-پی متریک و… حلش کرد. گمز خودکار اینکار رو انجام نمیده.
ال-پی متریک هم بله برای غیر خطی ها هم کاربرد داره
A
در مارس 3, 2023
ممنون از شما
saeide
در فوریه 12, 2023
سلام و ادب
یه مسئله ی مکان یابی _مسیر یابی هاب رو با 3 مدل و فرضیات متفاوت با گمز نوشتم و نرم افزار حل کرده ولی در هر 3 مدل، اتصال مستقیم انجام شده که البته جزء فرضیات مسئله هست، به نظرتون مشکل از کجاست؟
ممنون از راهنماییتون
سلام وقت بخیر
اتصال مستفیم به معنی نبود محدودیت متناظر هست. اگر گره i به گره j تخصیص یابد، پس j باید هاب باشد. این همون محدودیتی هست که نیاز دارید.
xij=l=yjj
قبل از انجام، مقاله های اوکلی 1987، کمپل 1994 و ارنست و همکاران 1996 رو یه مرور بکنید.
ضمناً اینکه چزو فرضیات هست اتصال مستقیم دنبال چه مشکلی هستید؟ وقتی خودش گفته مشکلی نیست
امین
در فوریه 9, 2023
سلام اقای دکتر
بنده یک مسعله چند سطحی دارم که در اون یک leader و چندین پیرو وجود داره. برای حل همچین مسعله ای تو گمز گفته از سالور EMP استفاده کنید. ولی وقتی برنامه رو اجرا می کنم فالورها شناسایی می شن ولی خطای زیر رو می ده
follower obj has no entry in follower equations
لطفا به بنده پاسخ بدید قبلا یکبار فرستادم متاسفانه جوابی دریافت نکردم
سلام وقت بخیر
متاسفانه من emp کار نکردم. دوستان اگر کار کرده خوشحال میشیم کمک کنن.
میثم فیلی
در ژانویه 31, 2023
با سلام
من در کارم یک متغیر دارم مانند x، همچنین یک رابطه دیگری دارم مثل t+y. میخوام اگر x مثبت باشد t+y اگر x منفی باشد t-y بشه! مهم نیست که t و y جنسشون چیه (پارامتر و یا متغیر) علامت مابینشون مهم برام. میخوام به نحوی رابطه ای تعریف کنم که ایم کار برام انجام بده! در ضمن نمیخوام از متغیر باینری کمکی استفاده کنم!
با تشکر
سلام و ادب
یعنی چی اگر x مثبت شد، t+y ؟ چی برابر t+y میشه؟
میثم فیلی
در فوریه 3, 2023
سلام مجدد و تشکر
میخواستم رو متغیر x شرط بزارم که اگر بزرگتر مساوی صفر شد یه علامت مثبت در یک رابطه دیگر استفاده کنم!
g(i)=t(i)+y(i)
خود x یک متغیر آزاد در علامت است. اگر بخوام از شرط $ استفاده کنم نمیشه با هر سالوری حل کرد! متغیر x حاصل یک رابطه است و من میخوام زمانی که مقدار آن مثبت شد در در یک رابطه دیگر دو متغیر با جمع شده ( همان t و y) و اگر مقدار x منفی شد دو متغیر t و y از هم کم بشوند
با تشکررر
محمودی
در فوریه 6, 2023
من راه دیگری به ذهنم نمیرسه الان. همون متغیر باینری راه حل مناسبی هست. چرا نمیخواد باینری استفاده کنید؟
میثم فیلی
در فوریه 8, 2023
با تشکر از پاسخ شما
یک متغیر باینری دارم که اینم اضافه بشه نمیتونه حل کنه سالور
محمودی
در فوریه 9, 2023
سلامت باشید
تست کنید. شاید شد. اول با تعداد اندیس های کمتر تست کنید.
saeide
در ژانویه 30, 2023
سلام و ادب
من یک مسئله ی مکان یابی – مسیر یابی هاب رو داخل گمز نوشتم و نرمافزار حل کرده، مسئله اینه که هیچ هابی پیدا نکرده و تمام اتصالات رو مستقیم انجام داده
سوالم اینه که مشکل از مدله یا در این مثال این اتفاق افتاده یا مشکل از گمزه و… با توجه به اینکه مدلش رو خودم نوشتم.
ممنون از راهنماییتون
سلام وقت بخیر
اینکه مسئله حل شده، اول باید solution report رو چک کنید، که ببینید solver status و model status چه مقادیری به خودشون گرفتن.
با فرض صحت پاسخ ها، دو نکته ممکنه وجود داشته باشه.
1- M بزرگ اگر دارید در مدل، ممکن هست خیلی بزرگ در نظر گرفته شده باشه. باید به تعریفش دقت کنید (ام بزرگ، کوچکترین عددی است که در معادله صدق می کند. یعنی مثلا اگر یه میلیارد گذاشتید، بذارین مثلا 10)
2- اگر اتصال مستقیم امکان پذیر هست در مدل، ممکن هست جواب منطقی هم باشه. مشکل از مدلسازی یا داده های ورودی هست که این اجبار رو برای مدل به همراه میاره.
مقداری تست انجام بدید، مثلا نقطه کاندید اول رو فیکس کنید که هاب باشه، ببینید انجام میده مدل؟ اگر نداد، یه داستان دارید اگر انجام داد احتمالا از داده ها و فرضیات مسئله هست.
J
در ژانویه 23, 2023
سلام
در کدی که نوشتم
;w=e=max(prod(i,(C_non(i)-C_0(i))-C_trade(i)))
error203 میده دلیلش چی هستش
سلام و ادب
کسی ارورها رو با شماره نمی شناسه. لطفا متن ارور رو کامنت کنید.
J
در ژانویه 23, 2023
Too few arguments for function error203
محمودی
در ژانویه 28, 2023
عبارت max اینجا جایی داره؟
مکس یک عبارت قیاسی هست، max(a,b پس بخش از اون رو ننوشتید. از طرفی بخش prod همیشه یک جواب میده، چیش رو قراره ماکس کنین در حالی که یک عدده؟
سلام
من میخواستم یک مجموعه که به صورت زیر است کد نویسی کنم
سیگما از یک شروع می شود تا 20 و با t تعریف می شود جلوی سیگما عبارت (1+te)/(1+ta)که این عبارت به توان t می رسد چگونه می توان این را کد کرد، با تشکر .
به جای ** هم میشه از power استفاده کرد. متغیر بودن یا نبودن ta,te تعیین کننده هست.
A
در ژانویه 9, 2023
سلام، از پاسخ شما سپاسگزارم.
محمودی
در ژانویه 9, 2023
خدا قوت
A
در ژانویه 9, 2023
سلام، حالا اگر بخواهیم عبارتی مثل ta تقسیم
(1+ta)-1به توان Nt-که ta مقدار 2 درصد و Ntتعداد سال که 20 سال است برای کد نویسی
برای نوشتن توان می توان از card (t) نوشت؟ می توان کد این را بنویسید ، با تشکر.
محمودی
در ژانویه 9, 2023
بله میشه با کارد نوشت
رضا صباحی
در دسامبر 10, 2022
سلام خسته نباشید
اقای سرودی داخل کتابشون یک سری توزیع اقتصادی بار انجام دادن و کد رو داخل کتابخانه گمز قرار دادند،ولی یکی از انها که مربط به توزیع اقتصادی نیروگاه های ابی هست در کتابخانه گمز قرار نداده اند ،راهی هست کد این رو از جایی پیدا کنیم؟
با سلام و احترام
برای یک مسله بهینه سازی من نیاز دارم NOT یک متغیر باینری (متغیر IN(i))(خروجی صفر اگر متغیر یک بود و خروجی یک اگر متغیر صفر بود) رو در تابع هدف و قیودم داشته باشم. برای همین از دستور not مطابق برنامه ادامه استفاده کردم.
متاسفانه بعد از حل مسله، تمامی عباراتی که این تابع در اونها ضرب میشدند صفر بود ( در حالی که متغیر اصلی مقادیر یک هم داست). جهت اطمینان بیشتر قیدی رو اضافه کردم l(i) که فقط خروجی این تابع رو نشون بده، باز هم همه صفر بودند.
سلام وقت بخیر
قضیه رو چرا می پیچونین.
یه متغیر داریم به اسم x(i) که صفر و یکه. حالا یه متغیر که عکس این هست چی میشه؟ میشه 1-x(i) اوکیه؟
علی صفائی
در نوامبر 14, 2022
سلام خسته نباشید
بنده یه مقاله رو شبیه سازی کردم و خطاهایی که بود رو برطرف کردم ولی الان از تابع هدف ویا بقیشون که display میگیرم صفر نشون میده و این پیام رو نشون میده Problem is integer infeasible
همه ی داده ها و فرمول هارو هم چک کردم همشون درست بودن ولی نمیدونم الان چه مشکلی داره که این پیام رو نشون میده.
ممنون میشم در صورت آگاهی، کمکم کنید.
سلام و ادب
ممکنه از داده ها، مدل، سالور یا کد باشه. بهترین کار اینه که تعداد کمی از محدودیت هاتون رو در دستور model بذارید، و ران کنید مسئله رو و هر بار یک محدودیت بهش اضافه کنید. این کار رو تا جایی ادامه بدید که مسئله نشدنی بشه. اونجا باید تحلیل کنید علت نشدنی بودن مسئله رو. این رویه بارها و بارها ممکنه لازم باشه انجام بشه.
قبل از همه این ها بازم مدل رو چک کنید.
ab
در سپتامبر 5, 2022
سلام ،
یک سیستم 9 شینه داریم که در set بصورت/Busi /bus1*bus۹
شین ها معرفی شده است ، حالا برای بعضی از قسمت ها bus1 را نمی خواهم در نظربگیرم بصورت زیر در set معرفی کنم درست است ؟
/nonslack(busi) /bus2*bus6
و مثلا بصورت زیر در معادله استفاده کنم
eq1.. sum (nonslack, d*p(nonslack))
سلام، برای مسأله ای گمز minlp را با سالور baron حل کرده ولی solver statusآن کد 13یعنی Error system failure نشان می دهد و با knitro هم solver status کد 6 یعنی capacity problemرا ظاهر می شود ، و در هر دو حل مقادیر را صفر نشان می دهد، الان مشکل از سیستم است و یا از کد نویسی…ممنون می شوم راهنمایی کنید.
سلام
احتمالا مشکل از کد شما نیست. بد کد کردن معمولا انقد خرابکاری نمیکنه. مشکل از سیستم هست. به نظرم همین کد رو تو سایت neos هم آپلود کنین. شاید اون ریسورساش بیشتره و بتونه حل کنه. سالورهای دیگه مثل lindo هم تست کنید.
ab
در آگوست 24, 2022
سلام، جهت مکان یابی DG در توزیع ، یک مسأله planning ده ساله داریم طوریکه تابع هدف شامل هزینه بهره برداری و هزینه سرمایه ای است جهت حل بایستی از دو سطحی استفاده کرد؟ یعنی ابتدا planning حل شود و در سطح دوم بهره برداری ؟ و در سطح اول متغیر باینری تعریف کنیم ؟یا می توان هزینه سرمایه ای یا هزینه ای بهره برداری در یک تابع هدف تعریف کرد و با قیود پخش بار، قیود شبکه و قیود ژنراتور و DG در گمز حل نمود؟ بدون اینکه تابع هدف را دو سطحی در نظر گرفت. ممنون می شوم راهنمایی کنید.
سلام
هر دوتاش قابل انجام هست. فقط جهت سهولت کار بهتره تک سطحی انجام بدید. چون حل چند سطحی متدلوژی ها و سختی های خودش رو داره
بهنام
در آگوست 11, 2022
وقتی که دو تا تابع هدف داریم که به هم مربوط میشن، در مقالات به صورت دو سطحی مدل میکنن، برخی هم به صورت پارتو جواب ها رو درمیارن و بعد بهترین جواب رو انتخاب میکنن
فرق این دو روش در چیه؟
سلام و ادب
اولی یک جواب به شما میده، دومی یک مجموعه جواب
منظورم از جواب، مقدار بهینه ایجاد شده برای توابع هدف و متغیرهای مسئله هست.
هر کدوم از اینها جایگاه استفاده مختص به خودشون رو دارن.
مثلا تو یه مسئله مکانیابی، ذات مسئله اینطور هست که اول تصمیم استراتژیک (احداث) انجام میشه بعدش سایر تصمیمات. پس منطقیه دو سطحیش کنن.
یا مثلا تو یه مسئله تئوری بازی، منطقیه که اول leader تتصمیم میگیره، بعد follower بر اساس تصمیمات لیدر استراتژی خودش رو میچینه.
امیرحسین
در آگوست 2, 2022
سلام من یک مسأله دو سطحی که به شکل Minmax () بوده را به صورت یک سطح در اوردم. اولین سوالم این بود که خود گمز میتونه با همون دو سطح حل کنه و چگونه ؟!
دومین سوالم اینه من پارامتری به عنوان data(t,*) تعریف کردم و مقدار دهی کردم
اکنون در معادلات استفاده کردم مثلاً به صورت data(t,’a’) و ارور ۱۴۹ میده.
کسی هست کمکم کنه…ممنون میشم
سلام و ادب
سوال اول: خیر. باید از یک متدلوژی استفاده کنید. مثلا از تک هدفه کردن، چند هدفه کردن و…
سوال دوم: صور عمومی رو دقت کنید.
امجد
در مارس 13, 2022
سلام خدمت اساتید محترم و گرانقدر، عذرخواهی میکنم برای تاب آوری در سیستم قدرت می تونید راهنمایی بفرماید به چه صورتی میتونم در گمز این موضوع رو پیاده کنم؟؟ هر کدام از دوستان بتونن جواب بدن واقعا ممنونشون میشم
سلام و ادب
در حل مدل دوسطحی، برخی قیود مثل کمینه و بیشینه تولید واحدها که در سطح پایین مسئله هست را حتما باید وارد مدل کنیم و متغیرهای دوگان آنرا هم لاجرم وارد کنیم یا میتوانیم برای کمتر شدن تعداد متغیرها، این چنین قیود را با پسوندهایی مثل x.up و x.lo به مدل بفهمانیم؟
سلام
یعنی بعد از اینکه مقدار متعیر تو سطح اول جواباش به دست اومده میخواین ببرین تو مدل دوم؟ اگه اینجوریه که مشکلی نیست. ولی با این نماد هایی که گذاشتین نمیشه. و بهتره یه پارامتر دیگه تعریف کنین و ببرین دو مدل دوم.
اگه منطورتون خود دوگان هست، بله مشکلی نیست.
امیرحسین
در آگوست 2, 2022
سلام
شما به یک سطح تبدیل کردید؟!
یا با همون دو سطح حل کردید.
میشه بگید چ جوری؟!
سارا
در دسامبر 16, 2020
سلام جناب دکتر
چطور میتونم مساله بهینه سازیمو با نرم افزار گمز از طریق روش MISOCP حل کنم/؟
سلام ممنون بله این کارهارو هم انجام دادم. الان رانش سریع تر شده. کلا دستوری در گمز وجود داره که همه RAM و cpu رو استفاni میکنه که سریع ران بشه چه دستوری هست؟
سلام
از آخرین مقالات ایشون میتونید ایمیلشون رو بردارید.
سینا
در نوامبر 11, 2019
خیلی ممنون این کارو هم انجام داده بودم. پخش بار خطی شده هست که فقط اندازه ولتاژ و توان اکتیو رو لحاظ کرده و از زاویه ولتاژ و توان راکتیو چشم پوشی کرده.
اینهم اسم مرجعی که پخش بارو خطی کرده به این روش
Bilevel approach for optimal location and contract pricing of distributed generation in radial distribution systems using mixed-integer linear
بازهم سرعت ران پایینه مخصوصا برای حالتی که قیود انعطاف پذیری رو هم به مساله اضافه میکنم بیشتر از یک ساعت زمان میبره تا به پیدا کردن گپ برسه.
برای همین خواستم بپرسم کدی که در انتها نوشته میشه و از تمام حجم cpu و هسته های کامپیوتر استفاده میکنه چی هست در اینترنت نتونستم پیدا کنم!
سلام
ببینید به طور معمولی گمز از همه هسته ها استفاده میکنه. ولی باید اجبار کنین بهش که اولویتش رو بیشتر کنه تو پروسس ها. مثلا میتونین تو تسک منیجر این کار رو بکنین یا thread های درگیر رو بیشتر کنین.
سینا
در نوامبر 7, 2019
ممنون این کارو انجام دادم و یه سری شرط برای قیدهای بخش بارم گذاشتم که شینهایی که اتصالشون صفره دیگه بررسی نکنه الان رم 0.3 گیگابابت میکشه و به نصبت حالت قبل خیلی بهتره شده اما هنوز پروسه ران و تموم شدن گپ طول میکشه حدود یک ربع مثلا
این مدت زمان برای ران گمز طبیعیه؟
با توجه به اینکه در هر شین و هر ساعت 15 سناریو دارم و کل سناریوهام 33*24*15 هست.
طبیعیه طول بکشه
توی قسمت solve var نگاه کنید
اونجا اگر متغییر اضافه می بینید
منظورم متغییرهاییه که حد بالاشون و پایینشون صفره مثلا فیکس هستند
اینا رو اگه بتونید توی معدلاتتون از بین ببرید با شرط درست
کمک می کنه به کاهش زمان ران برنامه
الان توی سوالتون هم واضح نیست ACoPF ران می کنید یا DC oPF
اگر AC هست نقطه شروع به کار مسله مهمه
سینا
در نوامبر 3, 2019
سلام جناب دکتر علت اینکه در گمر مدل هنگام ران حجم زیادی را میکشد و شمانده بیشتر میشود ولی مساله ران نمی شود چه چیزی است؟
کد خطایی ندارد اما وارد پروسه ایجاد گپ و حل مساله نمی افتد
این مشکل به حافظ کامپیوتر برمیگردد !
ابعاد مساله رو کم کنید ببینید چه اتفاقی می افته
اصولا ممکنه یه تعدادی متغییر بدون اینکه نیازی داشته باشید تو مدلتون باشند (که مثلا همیشه صفر هستند)
اونا رو باید بتونید تو معادلاتتون با گذاشتن شروط مناسب حذف کنید
سینا
در جولای 16, 2019
سلام جناب دکتر
علت اینکه به مدل دوسطحی تک خطی وقتی سناریو اضافه میکنم حتی 2 سناریو یا 4 سناریو رانش همگرا نمیشه که به حواب اخر برسه چه مواردی میتونه باشه؟
با سلام
توضیحتون خیلی کلی هستش اما تا اونجا که متوجه شدم چون مدلتون دو سطحی هست و احتمالا بصورت یک حلقه تکرار داره حل میشه باید دو بخش را چک کنید. اگر مدل به شکلی که گفتم هست باید ببنید در تکرار ها مقدار شرط توقف تعریف شده چی روندی داره و نکته دوم اینکه سیگنالی که ارتباط بین دو سطح را داره مشخص میکنه با اضافه کردن سناریو چه تغییری درش بوجود میاد. برای راهنمایی بیشتر باید توضیح کاملتری در مورد کار بیان کنید.
سینا
در می 13, 2019
سلام جناب دکتر
مدل من یک ارور دارد
equation infeasible due to rhs value
که معادله بالانسم هست
باید چه چیزاهایی رو بررسی کنم؟ کلا معادله اشتباه نوشته شده!
نه الزاما
دیتا رو بررسی کنید
یه کاری کنید که ارضا شدن اون قید آسونتر بشه
بعد ببینید کار می کنه با نه
معین
در می 11, 2019
سلام جناب دکتر،وقتتون به خیر
در صورت امکان میخواستم بدونم چه تفاوتی میان بهینه سازی Distributed Robust Optimization و
Distributional Robust Optimization هست ؟ آیا هردو یک مفهوم رو میرسونن یا تفاوت بین این دو وجود داره ؟
ممنون از لطف شما.
سلام distributed robust optimization از روشهای distributed optimization همانند admm برای حل مسئله استفاده میکنه، اما distributional robust optimization از روشهای بهینهسازی داده محور برای حل مسئله استفاده میکنه. در واقع این دومی مربوط به dro و ddro که مباحث data-driven هستن رو شامل میشه. و این دو مورد شاید تا حدی شبیه هم باشن، اما در بیس کار کلا دو چیز متفاوتن
احمد
در می 6, 2019
سلام آقای دکتر سرودی
برنامه ی گمز برای حل سناریو نوشتم. جمله تابع هدف ارور می دهد.
Solve problem using MIP minimizing z(s);
چه باید بکنم؟ چون هدف اینه که 10 عدد تابع هدف به ازای هر سناریو داشته باشم.
سلام جناب دکتر سرودی
علت منفی شدن تابع هدف در صورتی که قیود پخش بار را به مدل اضافه میکنم چه میتواند باشد؟
قبل از قیود پخش بار مدل کاملا درست جواب میداد
سوالتون اینجوریه که اگر من ۳ رو به x اضافه کنم چرا جواب میشه ۵ ؟
نباید توضیح بدید x چیه ؟
سارا
در می 2, 2019
سلام جناب دکتر سرودی
من به مدل دوسطحی ایم که کاملا درست جواب میداد و با سالور MIP حل میشد شبکه 33 باسه اضافه کردم
از انجایی که معادلات پخش بار را به صورت کوادراتیک در مدل قرار دادم با سالور RMIQCP سعی کردم مدل را حل کنم
مشکلی که وجود دارد با حل مدل اصلا معادلات پخش بار در مدل حل نمیشود و در قسمت equation list
—- Power_flowa1 =E=
NONE
—- Power_flowa2 =E=
NONE
—- Power_flowa3 =E=
NONE
—- Power_flowa4 =E=
NONE
جواب ها به این صورت است
آیا میتوانم کد برنامه را برای شما ایمیل کنم؟
مشکل از کجا میتواند باشد؟!
با تشکر
سلام
مدل شما Miqcp هست به نظرم. نه rmiqcp. حالت دوم فقط وقتی استفاده میشه که بخواین آزادسازی انجام بدید. ضمنا این این eq list که دادید ادرس مناسبی نیست.
مهدی
در آوریل 28, 2019
مسئله من plannig هست که درونش uc رو دیدم.واسه اینکه زودتر جواب بگیرم مدت زمان پلنینگ رو 3 ساله در نظر گرفتم.که بعدا 5 سال در نظر میگیرم.اون شرایطی که توضیح دادم متاسفانه برقرار هست. امروز همینجور دستی و فقط صرفا جهت تست، به گمز گفتم که تمام نیروگاه های حرارتیم برای تمامی سناریوهام در ساعت 1 (از 24 ساعت) و برای هر سه سال، 30 مگاوات تولید کنند.p(year,’t1′,s).fx=30;
با این دست کاری که امروز انجام دادم ، تقریبا جوابم خیلی قابل قبول بود.فقط دوتا از نیروگاه های کاندید احداث کرد و نیروگاه های موجودم مشارکت خوبی داشتند.در کل همه چی ایده ال به نظر میرسید.اما وقتی که فرضمو صرفنظر کردم مشکل همچنان پا برجاست.
با سلام و عرض پوزش فراوان،آقای محمودی لطف میکنید مجددا آپشن هایی که مد نظرتون بود رو ارسال کنید. ممنون میشم.
محمودی
در آوریل 25, 2019
بله عذرخواهی میکنم.
option optcr=0,optca=0,intvarup=0
ممکنه مشکل از اینها هم نباشه. فقط دارم تست میکنم کار شما رو. نسخه 24.7 رو نصب کنین مثلا.
مهدی
در آوریل 27, 2019
سلام. آپشن intvarup=0 رو به کدم اضافه کردم.جواب نرمال و بصورت اینتیجر سولوشن هست.تابع هدفم قبلا منفی بود الان مثبت شده.ولی نتایج خروجیم درست و منطقی نیست.این دستور که اضافه کردم در عمل چه مفهومی داره؟الان یعنی کدم درسته یا غلط؟ممنون از وقتی که میذارین.با تشکر فروان.
با درنظر گرفتن این آپشن، یه سوال هم از آقای دکتر سرودی داشتم.هدف مدلم مینیمم کردن هزینه احداث و بهره برداری هست.مقدار voll=1000$/mwh و هزینه احداث واحدهای کاندیدم بین 45000 تا 65000 $/MW هست.
به ازای voll=1000، هیچ احداثی اتفاق نمیوفته.ولی در بعضی سناریوها که واحد حرارتی باید تولید میکرده،بجاش حذف بار داده.و در بعضی سناریو ها تولید داشته. توان بادی در اکثر سناریوهامو جذب کرده.قید های رمپ و حد خطوط هم مشکلی ایجاد نمیکنند.در کل حذف بار زیادی داشته.در صورتی که میتونست حرارتی تولید کنه.
در حالت دوم برای اینکه گمز احداثو ببینه، مقدار voll رو به 300000 تغییر دادم.در این حالت احداث دیده شد ولی اصلا بهینه نیست.روی همه ی باس ها احداث کرده و بیشتر وظیفه بهره برداری رو این واحدهای جدید بعهده گرفتند.واحدهایی که هزینه بهره برداری شون از 15000تا25000 $/mwh هست.
تا جایی هم که بررسی کردم مدلم اشتباهی نداره.ممنون میشم راهنمایی کنید.از وقتی که میذارین واقعا سپاسگزارم.با تشکر بی نهایت.
ببینید شما در مساله بهره برداری باید در نظر داشته باشید که مدت زمان برنامه ریزی چقدره
برای بازه کوتاه احداث عملا بی فایده است
شما باید بازه برنامه ریزی رو افزایش بدید
مهدی
در آوریل 19, 2019
با سلام.بنده یک مدل minlp دارم که با سالور dicopt اونو حل میکنم.هدف مینیمم کردن هزینه احداث و بهره برداری باهم می باشد.وقتی که Run میگیرم،متغیرهای باینری و اینتیجرم اعدادی بجز اعداد صحیح هم میگیرند.(اعشاری).مسئله رو خیلی بررسی کردم اما متاسفانه به جوابی نرسیدم.ممنون میشم راهنمایی کنید.با تشکر.
از روی پیغام های سالور چک کنید ببینید اصلا حل شده یا نه
بعضی موارد به دلیلی infeasible شدن جواب نامربوط میدهد
مهدی
در آوریل 21, 2019
سالور استاتوس که نرمال کامپلیشن هست و مدل استاتوس اینتیجر سولوشن شده ولی خب مقدار تابع هدفم منفی بدست اومده.
محمودی
در آوریل 21, 2019
سلام
option های زیر رو به مدل اضافه کنین اول. نتیجه رو مجددا اعلام کنین.
سارا
در آوریل 9, 2019
ممنون مشکل حل شد و به خاطر پریونیت نکرد مقادیر شبکه بود که پخش بارها مشکل داشت.
یک سوال دیگر برای یک equation میخواهم همزمان دو شرط اعمل کنم در گوگل متاسفانه جوابی نیافتم
$(ord(t) < 24)
$MG_Bus(j,i)
برای همزمان وارد کردن این دو شرط در یک خط قبل از دو نقطه باید چیکار کنم؟
سلام جناب دکتر سرودی من مدل مساله ام (که یه مدل دوسطحی و با سالور MIP حل میکنم و با شرایط KKT و دوگان تک سطحی و خطی کردم) کاملا درست جواب میده و الان به کدهام قیود خطی پخش بار رو در سطح اول که مربوط به تابع هدفه شرکت توزیعه اضافه کردم اما جواب اینفیسیبل میشه
کدها به آین صورت هستند:
Power_flow1(i,t).. P(i+1,t) =e= P(i,t) – BusData(i+1,t,’Pd’);
Power_flow2(i,t).. Q(i+1,t) =e= Q(i,t) – BusData(i+1,t,’Qd’);
Power_flow3(i,t).. V(i+1,t) =e= V(i,t) – ((Linedata(i,i,t,’r’)*P(i,t))+(Linedata(i,i,t,’x’)*Q(i,t)))/1;
Balance(t).. PEin(t) =g= sum((j,i),PMG(j,i,t)) + sum(i,BusData(i,t,’Pd’));
وقتی در بالاتر حد مین و ماکس ولتاژ رو برمیدارم مساله جواب میده هرچند تابع هدف که سود هست منفی بدست میاد! اما وقتی محدودیت های ولتاژ در مساله هست کلا جواب نمیده!!!
ممنون میشوم راهنمایی کنید
با تشکر از سایت خوبتون
وقتی تابغ سود منفی میشه باید ببینید علت چیه
ایا ولتاژ ها ازحدود بیرون میزنه ؟
بار شبکه رو کم کنید چک کنید مجدد
مجتبی
در آوریل 6, 2019
با سلام
من یک مساله بای لول دارم
که در قیود سطح پایین (follower) آن متغییرهای باینری دارم
آیا روش kkt و خطی سازی قیود complementary slackness، برای حل این نوع مساله مناسب است؟
با تشکر از پاسخگوییتون،
من بخش خطاهای گمز،قسمت تلرانس متغیرهای Integer رو مطالعه کردم و در برنامه بکار بردم اما مشکل حل نشد. این معادله هم در مقاله داده شده است به این صورت که سیگمای w در بازهtهای عضو Ts1 تا (Tf1-p(i برابر با یک باشه. من میدونم که اشکال کار من اینه که قسمت سمت راست با چپ برابر نیس اما نحوه رفع این مشکل و اعمال معادله به شکل درست گمز رو نمیدونم لطفا مرا در نوشتن این کد در گمز راهنمایی نمایید.
شما یک سیگما بنویسید روی t
سپس با دستور $ به گمز بگید t در چه بازه ای باشد
نحوه نوشتن این دستور بارها در این سایت توضیح داده شده است
امیر
در آوریل 1, 2019
با سلام ؛
من این کد رو مینویسم
;eq13(j,i) .. sum(t$(ord(t)>= Ts1(j,i) and ord(t)<=Tf1(j,i)-p(i)),W(j,i,t)) =e= 1
که با این ارور
Equation infeasible due to rhs value
مواجه میشم اما با تغییر علامت کوچکتر به بزرگتر در Ord دوم مشکل infeasible حل میشه اما جواب درست به دست نمیاد، لطفا در این ضمینه راهنمایی بفرمایید. متغیر w نیز یک متغیر باینری میباشد. باتشکر
سلام
این خطا رو تو بخش خطاهای گمز مورد بررسی قرار دادیم.
وقتی همچین اروری میبینید، مفهوم اینه که با توجه به فرمول، شرط ها و داده های وارد شده در این معادله، به هیچ وجه امکان نداره که مسئله شدنی باشه. دقیق تر بگم. همه محدودیت ها و معادلات دیگه رو هم اگه بندازیم دور، همین یه معادله کافیه که مسئله نشدنی بشه.
نکته مهم تر اینه که این خطا قبل از حل شدن مسئله توسط سالور (حتی قبل از تلاش برای حل کردن) به کاربر نشون داده میشه!
نتیجتاً معادله میگه که: امکان ندارد سیگمای نوشته شده برابر با یک شود!
یسنا
در مارس 12, 2019
ممنون از لطف شما ،
ارور ۱۴۹ گمز رو بهم میده ؛
من داخل branch و parameter ،اندیس L رو تعریف کردم _ولی بازم ارور میده بهم ،این اندیس L باید دقیقا کجا اضافه بشه ؟ داخل Branch ? Conex ؟ Pij ؟
با عرض سلام جناب دکتر سرودی
در یک سیستم IEEE 118 باسه، دو مداره بودن خطوط را در جدول Branch(bus,node,*) ایراد میگیرد. حتی در صورتیکه ایندکسی مانند L برای خط قبل از Bus,node میشود بصورت : L,Bus,node,*)) ، بازهم ایراد میگیرد. برای رفع ایراد راه حلی وجود دارد یا باید از فرمول خطوط دومداره آنها را یکی کرد ؟
ممنون از لطف شما
سلام آقای دکتر_ وقتتون به خیر
یه مدل 33 باسه دارم که معادلات پخش بار Ac رو بدون خطی کردن و با سالور MIQCP=CPLEX حل میکنم و جواب میگیرم، ولی وقتی سیستم 118 باسه رو وارد میکنم به مشکل INTEGER INFEASIBLE برمیخورم_ آیا نیاز به خطی کردن قید SOCP هست ؟
اگر کد شما درست باشد به سیستم نباید وابسته باشد
شرایط اولیه را چک کنید
چرا متغییر باینری دارید ؟
قیودی را که در آنها متغییر باینری وجود دارد را چک کنید
معین
در مارس 5, 2019
در 118 باسه این جواب رو میده:
S O L V E S U M M A R Y
MODEL ADN1 OBJECTIVE
TYPE MIQCP DIRECTION MINIMIZE
SOLVER CPLEX FROM LINE 793
**** SOLVER STATUS 1 Normal Completion
**** MODEL STATUS 10 Integer Infeasible
**** OBJECTIVE VALUE NA
RESOURCE USAGE, LIMIT 17.047 1000.000
ITERATION COUNT, LIMIT 1714 2000000000
EVALUATION ERRORS NA 0
و در قسمت سالور هم آپشن ها رو اینجوری تنظیم کردم :
MODEL ADN1 /ALL/;
Option MIQCP = CPLEX;
Option sysout=on ;
Option optca=0;
Option threads=5;
option optcr=0;
Option reslim=20000000;
Option iterlim=20000000;
Option limrow=100;
Option limcol=100;
SOLVE ADN1 USING MIQCP MINIMIZING Z;
و همه جواب ها داخل 118 باسه صفر میشوند ولی 33 باس به جواب کامل و بهینه میرسه .بهینه سازی بصورت یک مدل bi-level بوده و یکسری متغیر ارتباط دهنده دو سطح(operation & planning) دارم که از نوع اینتیجر هم دارم…مشکل از لایسنس های کرک شده گمزی که در ایران استفاده میکنیم نیست احیانا؟
ممنون از لطفتون آقای دکتر .
اصولا با تغییر کیس نباید مشکلی ایجاد شود
باید تمامی قید ها را تک تک چک کنید و ببینید ایراد از کجاست
بدون شک برای کیس جدید فرضیاتی داشته ایذ که در کیس قبلی وجود نداشته اند
مثلا vbase sbase حدود خطوط و ….
سارا
در فوریه 25, 2019
با سلام من یک سوالی داشتم در رابطه با شرایط kkt…
بعد از نوشتن قیود kkt و قیود Complementary slackness آیا حتما باید این قیود توسط روشهایی مثل Big-M خطی شود؟
آیا نمیشود با MINLP حل کرد؟
مدل شما minlp می شود که در صورت بزرگ نبون مساله قابل حل با سالور های موجود است و نیازی به bigM نیست
سعید
در فوریه 25, 2019
سلام استاد سرودی ارجمند.
من فارغ التحصیل ارشد برق قدرت دانشگاه آزادم.
وحدود سه سال در زمینه بهبود الگوریتم های فرا ابتکاری در سیستم های قدرت نظیر جایابی جبرانسازها، بازآرایی، ED و… کار کردم. همچنین الگوریتم PSO را بهبود دادم و مساله ED رو باهاش حل کردم و در ژورنال Applied soft computing ریوایز خورده.
تمامی موارد بالا رو با کدنویسی در نرم افزار متلب انجام دادم.
جدیدا که مقالات اساتید رو در ژورنال های معتبر چک میکنم، میبینم اکثرا بر اساس ریاضی هستن و نظیر سالورهایی مثل سی پلکس حل شده اند. از طرفی اخیرا با یک استاد در جهت اپلای صحبت کردم گفتن که اولویت با کسانی هست که گمز کار میکنن.
خدمت شما عرض کنم من الان متوجه شدم که چه اشتباهی رو مرتکب شدم و گمز کار نکردم و الان چنتا سوال دارم ممنون میشم راهنمایی کنید.
1- آیا تصمیمی که گرفتم در جهت کوچ از فراابتکاری و متلب به سوی گمز درست هست؟
2-آیا برای من که بیس ریاضی قوی ندادم، یادگیری گمز راحته؟ چونکه میخوام دکتری اپلای کنم قطعا باید مقالات خوبی را انجام بدم و خواستم مطمئن بشم که با توجه به سطح ضعیف ریاضیم در اثبات فرمول و… به مشکل برنمیخورم.
3-گمز رو سریع میشه یادگرفت؟ چه رفرنسی را پیشنهاد میدین که خیلی کاربردی آموزش داده باشه؟
4-اگر پیشنهادی دارید ممنون میشم راهنمایی کنید با توجه به توضیحاتم.
1- بلی درست است
2-هیچ کاری راحت نیست اگر دنبال کار راحت هستید راحت ترین کار هیچ کاری نکردن است
3-بلی می شود سریع یاد گرفت
یک مثال را با گمز حل کنید (هر مثالی ) یاد می گیرید
4-توصیه می کنم کار کنید
سارا
در فوریه 19, 2019
سلام جناب دکتر سرودی ارجمند
برنامه من یک مدل دو سطحی که از روش KKT و دوگان تک سطحی و خطی شده و نتیجه MIP شده رو با solver ceplx حل کردم
یک بار که قیود مساله م کمتر **** MODEL STATUS 8 Integer Solution این وضعیت رو نشون میده
یک بار هم که یه سری قیود به مساله اضافه میشه **** MODEL STATUS 1 Optimal این وضعیت نمایش داده میشه
کلا مدل تک سطحی و خطی شده MIP هست در هر دو حالت وضعیت مدل با این توصیفات درست هست در ر دو حالت؟
status 1 یعنی جواب بهینه گلوبال پیدا شده
status ۸ یعنی جواب feasible پیدا شده (می توانید با دستور optcr=0) از گمز بخواهید به جستجو برای جواب گلوبال ادامه دهد
امیر
در فوریه 13, 2019
با سلام،
من میخوام تقاضای حرارتی 10خونه رو برای بازه48 تایی تعریف کنم؛مثلا بگم تقاضای حرارتی خونه اول در بازه اول 1.8، تقاضای حرارتی خونه دوم تو بازه اول 1.4 و تاآخر.
[css]
Table E(j,t,*)
Dh
j1.t1 1.8
j2.t1 1.4
j3.t1 1
j4.t1 2
[css]
به این شکل بنویسم کد طولانی میشه راهی برای خلاصه کردن وجود داره؟
سلام آقای دکتر سرودی
ممنون بابت وقتی که در اینجا می گذارید و همچنین بابت کتاب خوبتون
برای حل مسئله پخش بار AC بمنظور مینیمم کردن هزینه های تولید برای یک سیستم 3 شینه با یک ژنراتور (در شین 3) و دو بار (در شین 2 و 3) کد زیر رو نوشتم ولی جواب شدنی نمیشه و علت آن این است که توان عبوری (PL) بین دو شین صفر است. لطفا ایراد کد و علت صفر شدن PL (توان عبوری بین خطوط) را بفرمایید.
با تشکر
ایراداتی که در جواب این کد می آید بشرح زیر است:
1) An equation in the pre-triangular part of the model cannot be solved because the critical slack is at a bound.
2) The number of nonlinear derivatives equal to zero in the initial point is large (= 25 percent). A better initial point will probably help the optimization.
3) Infeasibility in pre-triangular part of model.
4) Equation Eq02(2,24,ln1) has been solved with respect to the slack After the last operation the residual is still 0.0006.
GAMS Code
Sets
i Indices of buses/1*3/
l Index of lines /ln1*ln2/
t Index of time/1*24/
;
Alias(i,j);
Scalars
cD /2/
cG /0.1/
Slack /1/
;
table BD(l,*) Bus data
bs br R X PDemand pGmax
ln1 1 2 0.117 0.3867 0.0006 0
ln2 2 3 0.4446 0.1469 0.0002 0.03
;
Variables
pD(i,t)
pG(i,t)
OF
g(i,j)
b(i,j)
pL(l,t)
v(i,t)
theta(i,t)
;
ضمن تشکر از جناب آقای دکتر سرودی بابت پاسخ دهی به سوال مطرح شده.
من یک سوال دیگری داشتم در رابطه با مساله بای لول
با فرض اینکه یک مساله داریم که میخواهیم در لول بالا تابعی به شکل ” ax+by ” را min
و در لول پایین تابع ” cx+dy ” را min کنیم
در صورت حذف شدن یکی از ترم های لول بالا مثلا ” by ”
آیا مساله از حالت بای لول خارج شده و یک سطحی می شود؟
با توجه به اینکه x و y متغییرهای تصمیم ما در هر دو لول هستند و بین این دو سطح رد و بدل می شود؟
با سلام
من یه مساله Bilevel با دو فالور دارم
در لول بالا میخام هزینه بهره برداری رو حداقل کنم و در لولهای پایین سودهایی رو حداکثر کنم
برای حل توسط Kkt conditions
از emp استفاده کردم
خروجی هایی دارم منتهی این Warning رو هم دارم
** Warning ** The variance of the derivatives in the final
point is large (= 4.3 ). A better scaling or
better bounds on the variables will probably
help the optimization.
و اینکه دو تا متغییر باینری هم در مدل سازی دارم منتهی تمام خروجی های این متغییر ها باینری نیست؟
چیکار کنم؟ آیا مدلسازی و سالور ام غلط است؟
بهترین راه اینه که در لول پایین شرایط kkt رو بنویسید
مساله رو تک سطحی کنید (که البته غیرخطی میشه)
و اون مساله MINLP ایجاد شده رو حل کنید
این راهی است که به ذهن من می رسه
احمد
در فوریه 4, 2019
با سلام خدمت آقای دکتر سرودی و تشکر بابت وقتی که به پاسخ ها اختصاص می دهید.
در باره برنامه ریزی تصادفی (stochastic programming) سوال دارم.
هنگام سناریوسازی با استفاده از شبیه سازی مونت کارلو از مقادیر پیش بینی شده (forcasted)، به چه ورودی هایی نیاز داریم؟
در اینصورت لازم است تابع توزیع نرمال را از بدست بیاوریم؟
برای مثال، تولید سناریو (scenario generation) برای قیمت برق به چه صورت است؟
بابت وقتی که می گذارید پیشاپیش ممنون شما هستم.
سلام
شما با استفاده از داده گذشته باید بتوانید تابع توزیع احتمالی برای داده (مثلا قیمت بازار) خود فیت کنید
زمانی که شما تابع توزیع را داشه باشید تولید سناریو آسان خواهد بود
می توانید با آن تابع توزیع، عدد تصادفی تولید کنید
مهدی
در ژانویه 30, 2019
سلام آقای دکتر
وقتتون به خیر،
اگر بخوام در گمز یا بطور کلی،دو یا چند شبکه 33 باسه رو به هم وصل کنم و یک گرید در نظر بگیرم، چه کار باید کنم ؟
میشه راهنمایی کنید .
خیلی ممنون از لطف شما
سلام و وقتبخیر
مدل سازی سه هدفه با روش محدودیت اپسیلون انجام دادم،داخل جوابها،جواب تکراری هم وجود داره و همچنین مقادیر توابع هیچ ترتیب صعودی یا نزولی وجود ندارند.
آیا باید همواره جواب ها باید دارای ترتیب صعودی یا نزولی و بدون تکرار باشند؟ یا این قضیه برقرار نیست اصلا
سلام جناب دکتر سروردی،
اگر در یک مساله Bi-level که بصورت برنامه ریزی و بهره برداری است، در قسمت قیود بهره برداری قید باینری داشته باشیم، و نیاز به تئوری دوگان داشته باشیم از قیود بهره برداری، از قیود باینری چگونه میتوان دوگان گرفت ؟ آیا امکان هست چنین چیزی ؟
خیلی خیلی ممنون از وقتی که در اختیار ما دانشجوها قرار میدید ..
از روش fuzzy satisfying method (مستقل از تعداد توابع) می توانید جواب نهایی را انتخاب کنید
(گد گمز موحود نیست اگر مایل باشید می توانید بنویسید)
مقاله زیر را بخوانید
3.2.2. Stage II (Selecting ‘the best’ solution)
سلام آقای دکتر
امکان داره تو سایت یه آموزش در مورد پیاده سازی روش لاگرانژ برای آزاد سازی قیود تو مسائل بهینه سازی بذارید؟ یا یه مرجه خوب برای این موضوع پیشنهاد بدید؟-مثلا تو مسائل bi-level-
کتاب تون بسیار عالی تون رو مطالعه کرده ام اما در مورد روش لاگرانژ مطلب زیادی نیست
تشکر
آقای دکتر در صورت امکان، در مورد قید حفظ پیوستگی و شعاعی بودن شبکه توزیع بعد از بازآریی به غیر از استفاده از گراف و ماتریس در نرم افزار گمز راهنمایی بفرمایید.
سلام جناب سرودی ،
جسارتا میخواستم بدونم اگر یه بهینه سازی Bi-level داشته باشیم ، بطوریکه سطح اول برنامه ریزی و سطح دوم بهره برداری باشد ،و در قیود ارتباط دهنده دوسطح یک قید تپ چنچر بصورت (Dommy Binary)
داشته باشیم ، الزاما مسئله رو سه سطحی میکنه ؟ مثلا بجای روش CCG باید از Nested CCG استفاده کنیم یا نه ؟ نیاز به دوگان قید باینری هست ؟
ممنون میشم توضیح بدید – و ممنون از لطف شما
در مسایل bilevel همیشه متغییر ارتباط دهنده دوسطح داریم
چرا می فرمایید ۳ سطحی ؟
در حالت کلی باید شرایط kkt را نوشته و تک سطجی کنید
جال ممکن است برای سهولت حل از روشهای تکراری مثل بندرز استفاده کنید (مخصوصا برای متغییر های باینری)
alias(k,j);
eq(j,k)$(ord(k)<ord(j)) .. X(k)=l=X(j);
solve model us lp min of ;
display eq.m
نیما
در ژانویه 16, 2019
سلام جناب دکتر سرودی
ممنون از وقتی که در اختیار ما قرار میدید ،در صورت امکان درباره مدل سازی عدم قطعیت منابع بادی در گمز میشه توضیح مختصری بفرمایید .
ممنون میشم …
سلام
ببخشید ضرایب تابع لاگرانژ که در بهینه سازی در گمز اجرا می شود را چطور می توان از نتایج نهایی پیدا کرد ؟
برنامه حداقل سازی هزینه برای پیدا کردن تراکم خطوط دارم و به دنبال ضریب لاندا که در تابع بهینه سازی هست ،،هستم ( منظور از ضریب لاندا ، ضریب قید در تابع لاگرانژ است )
از توجه شما ممنونم
سلام آقای دکتر
ممنون بابت سایت و کتاب خوبتون
من یه مدل سه هدفه رو با روش محدودیت اپسیلون دارم کدمیکنم.
طبق مثال کتاب خودتون دو هدفش رو انجام دادم
واسه تبدیل به سه تابع هدف مشکل دارم،آیا فایلی مثالی هست که بتونم سه تابع هدف رو طبق اون انجام بدم؟توضیحاتش رو خوندم اما بلد نیستم کدش کنم
ممنون میشم راهنمایی کنید.
و اینکه این روش محدودیت اپسیلون تا چه تعداد تابع هدف رو میتونه پاسخگو باشه؟
برای کد کردن بیش از سه تابع هدف از چه روشی استفاده کنم؟
خیلی ممنون
سلام
فرض کنید سه تابع هدف دارید و قرار است همه را ماکزیمم کنید
ابتدا ۳ بار باید مساله را جل کنید
۱-
max OF1
این مساله مقدار بیشینه of1 , نیز مقادیری برای of2,3 به شما می دهد
۲-
max OF۲
این مساله مقدار بیشینه of۲ , نیز مقادیری برای of۱,3 به شما می دهد
۳-
max OF۳
این مساله مقدار بیشینه of۳ , نیز مقادیری برای of2,۱ به شما می دهد
از این سه مساله شما بازه تغییرات هر سه تابع هدف را دارید
حالا دو حلقه باید تعریف کنید که حد پایین of1,2 را تغییر دهد و of3 را ماکزیمم کنید
راه خیلی موثری نیست اما راه دیگری برای بدست اوردن سطح پرتو نیست
بیشتر از ۳ تابع هدف امکانپذیر نیست
معین
در ژانویه 9, 2019
در صورت امکان در خصوص معادله I^2V^2=p^2-Q^2 میشه توضیح بدید ؟
ممنونمم آقای دکتر
I^2V^2=P^2+Q^2
بجای حل کردن عبارت بالا میخوام تقریب بزنم،(عبارت رو جایی خوندن با عنوان تقریب زدن معادلات SOCP)
S=IV
S^2=P^2+Q^2
Q=P tanx
p tanx<=(sqrt(P^2+Q^2<=p tanx –
آیا بطور کلی میشه SOCP رو تقریب زد یا نه ؟
ممنون از لطفتون آقای دکتر..
با سلام.خیلی ممنون از سایت خوبتون،همچنین از همکاری جناب آقای دکتر سرودی با گمزبوک بسیار خوشحالم.
جناب آقای دکتر سرودی،
ضمن عرض ادب و احترام،
بنده روی GEP کار می کنم.برای در نظر گرفتن عدم قطعیت توان بادی، چیزی نزدیک به 5000 سناریو برای توان بادی دارم که میخوام با استفاده از SCENRED اونها رو کاهش بدم. بعد از خوندن help گمز،متاسفانه نتونستم طرز استفاده SCENRED رو یادبگیرم.و کدم رو با سناریو های کاهش یافته مقاله بیسم ،دارم پیش میبرم. خواستم بگم که فایل آموزشی چیزی هست که بشه سریع طرز استفاده از این ابزارو یاد گرفت؟؟قبلا هم آقای محمودی گفته بودن که در حال تهیه یک ویدئوی آموزشی هستند که متاسفانه آماده نشده.امیدوارم که پاسخ امیدوار کننده ای از شما یا سایت گمزبوک شنیده بشه.چون فکر کنم ،کسایی که در استفاده ازSCENRED دچار مشکل هستند،افراد کمی نیستن. نکته دیگه اینکه، با توجه محدودیت زمانی که دارم(برای دفاع در این ترم تا اخر بهمن)،اگه بجای کاهش سناریو،از همین سناریوهای کاهش یافته مقاله بیسم استفاده کنم،تاثیر منفی روی نمره پایان نامه ام داره؟؟اگه داره، تاثیر قابل توجهی هست؟؟ممنون از لطف شما.
سلام خدمت جناب دکتر سرودی و خیلی ممنونم بابت کتاب خوبتون
آیا در حل مسﺋله ی bi-level در نرم افزار گمز میشه قیدهای سطح پایین مسﺋله غیر خطی و غیر محدب باشند( به طور مثال رابطه ی جریان گاز طبیعی عبوری از خط)؟
هدف تبدیل کردن مسﺋله ی دوسطحی به تک سطحی نیست و قصد داریم با خود حل کننده ی نرم افزار گمز مسﺋله دوسطحی حل شود
سلام و خسته نباشید
میخام واسه پروژم چن تا شبکه برق رو که باهم تبادل توان دارند شبیه سازی کنم،و تابع توان و هزینه رو برای هر شبکه به طور جداگانه در نظر بگیرم(به عنوان توابع هدف)
اگه تعداد این توابع مثلا هفت هشت تا بشه
در نهایت حلش خیلی سخت میشه یا مثل مسئله ای با ۳تا تابع هدف حل میشه…
نکته اول : شما می توانید آلودگی را به هزینه تبدیل کنید و با هزینه جمع نمایید
۲- اگر شما در مساله قصد دارید دیسپچ بهینه واحد ها را طوری تعیین کنید که هزینه شبکه ۱ را کمینه کنید این مساله به افزایش هزینه بقیه شبکه ها منجر می شود
چرا هزینه همه شبکه ها را با هم جمع نمی کنید ؟ (دفت کنید که شما به عنوان نهاد مرکزی در حال بهینه کردن همه واحد ها هستید و آنها را کنترل می کنید پس هزینه کل برای شما باید مهم باشد
شهاب
در دسامبر 21, 2018
خیلی ممنون
رضا صباحی
در دسامبر 10, 2022
سلام آقای دکتر وقتتون بخیر
داخل کتاب شما یک سری توزیع اقتصادی بار انجام شده است و کد رو داخل کتابخانه گمز قرار دادید، ولی یکی از انها که مربوط به توزیع اقتصادی نیروگاه های آبی است در کتابخانه گمز قرار ندادید ، اگر امکانش هست لطف کنید و این کد را برای ما ارسال کنید.
بسیار سپاسگزارم از کتاب خوبتون rezasabahi0@gmail.com
با سلام
جناب من مدلی غیر خطی دارم که در dicopt حلش میکنم
میخوام بدونم راهی وجود داره که من بتونم مقدار تابع هدف را در هر تکرار از گمز خروجی بگیرم
جایی که سالور dicopt مقدار تابع را در هر تکرار مینویسه و در نهایت مقدار بهینه رو معرفی میکنه من دنبال اینم که گزارش همه مقادیر تابع هدف رو برای همه تکرار ها گزارش بگیرم تا در گزارش اصلیم بیارم به نظرم بهش میگن performane curve سالور
سلام و ادب
چنین آپشنی من ندیدم. لطفا اگر پیدا کردین با ما هم در میون بذارین.
سلام و وقت بخیر. در مورد نحوه خطی سازی پخش بار AC برای شبکه های شعاعی سوال داشتم که چه جوری باید این کارو کنم توی گمز؟
کلا برای چی خطی سازی میکنن؟ مگه جواب نهایی پخش بار AC غیر خطی با خطی یکسان نیست؟
با توجه به این نکته که ماهیت اصلی تمام پخش بار های AC غیر خطی است.
سلام دوستان، وقت بخیر.
سه تولید کننده به نام a،b و c داریم ، اگر a و b انتخاب شود هر کدام فقط 30 درصد مجاز هستند تولید کنند و اگر c انتخاب شود تا 40 درصد مجاز به تولید است ، محدودیت آن هم به صورت زیر می باشد
Pmin≤Pi≤Pmax
این جمله شرطی را چطور می توان در گمز نوشت ؟
سلام
با فرض اینکه xi انتخاب شدن تولید کننده i رو نشون بده:
یعنی pminو pmaxهم باید به صورت متغیر نوشته شود ؟
نه برای هر i مقادیر مشخصی داشته باشن. مثلا حداکثر برای اولی برابر با 20 هست و دومی برابر با 30.
سلام آقای دکتر خسته نباشید
بنده می خواستم در گمز کد نویسی کنم برای یک مسئله مربوط به رشته برق انجام بدم. تو این مقاله گگفته شده که از روشش KKT اسفاده شده است. متاسفانه من هر چقدر در مورد این روش خوندم موجه نشدم که چطور این رو در کدنویسیم دخیل کنم. لطفا میشه راهنمایی کنید بنده رو. آدرس ایمیل بنده: amin.rahimi1367gmail هستش اگر لطف کنید در ایمیل بهم اسخ بدید ممنون میشم.
با تشکر
سلام و ادب
متاسفانه من فایل آموزشی ندارم برای kkt. فیلم و جزوه آموزشی هست تو اینترنت سرچ بزنین پیدا میشه. چند تا مقاله هم ببینید کمک میکنه.
سلام، وقت بخیر.
در یک مسأله مکان یابی،اگر تابع هدف سرمایه ای مثلا کاهش هزینه نصب تجهیز و یک تابع هدف بهره برداری مثلا کاهش هزینه تولید توان را داشته باشیم، برای حل آیا لازم است از روش وزن دهی آن ها را ترکیب کرد و در گمز نتیجه بهینه را یافت؟ یا اینکه بدون وزن دهی هر دو را با هم جمع کنیم کافی است؟ و اینکه روش lp- metric برای حل دو تابع هدف که یکی خطی و یکی غیر خطی است قابل اجراست؟
سلام و ادب
ببینید علت جدا کردن اهداف جنس اونها هست. اگر این دوتا هزینه قابل جمع کردن هستن، یک هدفش کنید. مثلا اگر یکی حدودا 100 میشه و یکی هم حدودا 50، دیگه نیازی نیست جدا بشن. معمولا هم باید با هم بیان.
اگر چند هدفه شد، باید با روش های مختلف نظیر وزن دهی، اپسیلون، ال-پی متریک و… حلش کرد. گمز خودکار اینکار رو انجام نمیده.
ال-پی متریک هم بله برای غیر خطی ها هم کاربرد داره
ممنون از شما
سلام و ادب
یه مسئله ی مکان یابی _مسیر یابی هاب رو با 3 مدل و فرضیات متفاوت با گمز نوشتم و نرم افزار حل کرده ولی در هر 3 مدل، اتصال مستقیم انجام شده که البته جزء فرضیات مسئله هست، به نظرتون مشکل از کجاست؟
ممنون از راهنماییتون
سلام وقت بخیر
اتصال مستفیم به معنی نبود محدودیت متناظر هست. اگر گره i به گره j تخصیص یابد، پس j باید هاب باشد. این همون محدودیتی هست که نیاز دارید.
قبل از انجام، مقاله های اوکلی 1987، کمپل 1994 و ارنست و همکاران 1996 رو یه مرور بکنید.
ضمناً اینکه چزو فرضیات هست اتصال مستقیم دنبال چه مشکلی هستید؟ وقتی خودش گفته مشکلی نیست
سلام اقای دکتر
بنده یک مسعله چند سطحی دارم که در اون یک leader و چندین پیرو وجود داره. برای حل همچین مسعله ای تو گمز گفته از سالور EMP استفاده کنید. ولی وقتی برنامه رو اجرا می کنم فالورها شناسایی می شن ولی خطای زیر رو می ده
follower obj has no entry in follower equations
لطفا به بنده پاسخ بدید قبلا یکبار فرستادم متاسفانه جوابی دریافت نکردم
سلام وقت بخیر
متاسفانه من emp کار نکردم. دوستان اگر کار کرده خوشحال میشیم کمک کنن.
با سلام
من در کارم یک متغیر دارم مانند x، همچنین یک رابطه دیگری دارم مثل t+y. میخوام اگر x مثبت باشد t+y اگر x منفی باشد t-y بشه! مهم نیست که t و y جنسشون چیه (پارامتر و یا متغیر) علامت مابینشون مهم برام. میخوام به نحوی رابطه ای تعریف کنم که ایم کار برام انجام بده! در ضمن نمیخوام از متغیر باینری کمکی استفاده کنم!
با تشکر
سلام و ادب
یعنی چی اگر x مثبت شد، t+y ؟ چی برابر t+y میشه؟
سلام مجدد و تشکر
میخواستم رو متغیر x شرط بزارم که اگر بزرگتر مساوی صفر شد یه علامت مثبت در یک رابطه دیگر استفاده کنم!
g(i)=t(i)+y(i)
خود x یک متغیر آزاد در علامت است. اگر بخوام از شرط $ استفاده کنم نمیشه با هر سالوری حل کرد! متغیر x حاصل یک رابطه است و من میخوام زمانی که مقدار آن مثبت شد در در یک رابطه دیگر دو متغیر با جمع شده ( همان t و y) و اگر مقدار x منفی شد دو متغیر t و y از هم کم بشوند
با تشکررر
من راه دیگری به ذهنم نمیرسه الان. همون متغیر باینری راه حل مناسبی هست. چرا نمیخواد باینری استفاده کنید؟
با تشکر از پاسخ شما
یک متغیر باینری دارم که اینم اضافه بشه نمیتونه حل کنه سالور
سلامت باشید
تست کنید. شاید شد. اول با تعداد اندیس های کمتر تست کنید.
سلام و ادب
من یک مسئله ی مکان یابی – مسیر یابی هاب رو داخل گمز نوشتم و نرمافزار حل کرده، مسئله اینه که هیچ هابی پیدا نکرده و تمام اتصالات رو مستقیم انجام داده
سوالم اینه که مشکل از مدله یا در این مثال این اتفاق افتاده یا مشکل از گمزه و… با توجه به اینکه مدلش رو خودم نوشتم.
ممنون از راهنماییتون
سلام وقت بخیر
اینکه مسئله حل شده، اول باید solution report رو چک کنید، که ببینید solver status و model status چه مقادیری به خودشون گرفتن.
با فرض صحت پاسخ ها، دو نکته ممکنه وجود داشته باشه.
1- M بزرگ اگر دارید در مدل، ممکن هست خیلی بزرگ در نظر گرفته شده باشه. باید به تعریفش دقت کنید (ام بزرگ، کوچکترین عددی است که در معادله صدق می کند. یعنی مثلا اگر یه میلیارد گذاشتید، بذارین مثلا 10)
2- اگر اتصال مستقیم امکان پذیر هست در مدل، ممکن هست جواب منطقی هم باشه. مشکل از مدلسازی یا داده های ورودی هست که این اجبار رو برای مدل به همراه میاره.
مقداری تست انجام بدید، مثلا نقطه کاندید اول رو فیکس کنید که هاب باشه، ببینید انجام میده مدل؟ اگر نداد، یه داستان دارید اگر انجام داد احتمالا از داده ها و فرضیات مسئله هست.
سلام
در کدی که نوشتم
;w=e=max(prod(i,(C_non(i)-C_0(i))-C_trade(i)))
error203 میده دلیلش چی هستش
سلام و ادب
کسی ارورها رو با شماره نمی شناسه. لطفا متن ارور رو کامنت کنید.
Too few arguments for function error203
عبارت max اینجا جایی داره؟
مکس یک عبارت قیاسی هست، max(a,b پس بخش از اون رو ننوشتید. از طرفی بخش prod همیشه یک جواب میده، چیش رو قراره ماکس کنین در حالی که یک عدده؟
سلام وقتتون بخیر
∑
jϵn/i
رو چجوری میتونم بنویسم
سلام
اگر منظورتون نامساوی بودن i و j هست،
سلام
نه منظورم اینکه j عضو n/i باشه
خب این n/i یه معنی میده؟
سلام
من میخواستم یک مجموعه که به صورت زیر است کد نویسی کنم
سیگما از یک شروع می شود تا 20 و با t تعریف می شود جلوی سیگما عبارت (1+te)/(1+ta)که این عبارت به توان t می رسد چگونه می توان این را کد کرد، با تشکر .
سلام
در این عبارت رو بگیم A هست.
به جای ** هم میشه از power استفاده کرد. متغیر بودن یا نبودن ta,te تعیین کننده هست.
سلام، از پاسخ شما سپاسگزارم.
خدا قوت
سلام، حالا اگر بخواهیم عبارتی مثل ta تقسیم
(1+ta)-1به توان Nt-که ta مقدار 2 درصد و Ntتعداد سال که 20 سال است برای کد نویسی
برای نوشتن توان می توان از card (t) نوشت؟ می توان کد این را بنویسید ، با تشکر.
بله میشه با کارد نوشت
سلام خسته نباشید
اقای سرودی داخل کتابشون یک سری توزیع اقتصادی بار انجام دادن و کد رو داخل کتابخانه گمز قرار دادند،ولی یکی از انها که مربط به توزیع اقتصادی نیروگاه های ابی هست در کتابخانه گمز قرار نداده اند ،راهی هست کد این رو از جایی پیدا کنیم؟
سلام و ادب
بهشون ایمیل بزنید.
با سلام و احترام
برای یک مسله بهینه سازی من نیاز دارم NOT یک متغیر باینری (متغیر IN(i))(خروجی صفر اگر متغیر یک بود و خروجی یک اگر متغیر صفر بود) رو در تابع هدف و قیودم داشته باشم. برای همین از دستور not مطابق برنامه ادامه استفاده کردم.
متاسفانه بعد از حل مسله، تمامی عباراتی که این تابع در اونها ضرب میشدند صفر بود ( در حالی که متغیر اصلی مقادیر یک هم داست). جهت اطمینان بیشتر قیدی رو اضافه کردم l(i) که فقط خروجی این تابع رو نشون بده، باز هم همه صفر بودند.
سلام وقت بخیر
قضیه رو چرا می پیچونین.
یه متغیر داریم به اسم x(i) که صفر و یکه. حالا یه متغیر که عکس این هست چی میشه؟ میشه 1-x(i) اوکیه؟
سلام خسته نباشید
بنده یه مقاله رو شبیه سازی کردم و خطاهایی که بود رو برطرف کردم ولی الان از تابع هدف ویا بقیشون که display میگیرم صفر نشون میده و این پیام رو نشون میده Problem is integer infeasible
همه ی داده ها و فرمول هارو هم چک کردم همشون درست بودن ولی نمیدونم الان چه مشکلی داره که این پیام رو نشون میده.
ممنون میشم در صورت آگاهی، کمکم کنید.
سلام و ادب
ممکنه از داده ها، مدل، سالور یا کد باشه. بهترین کار اینه که تعداد کمی از محدودیت هاتون رو در دستور model بذارید، و ران کنید مسئله رو و هر بار یک محدودیت بهش اضافه کنید. این کار رو تا جایی ادامه بدید که مسئله نشدنی بشه. اونجا باید تحلیل کنید علت نشدنی بودن مسئله رو. این رویه بارها و بارها ممکنه لازم باشه انجام بشه.
قبل از همه این ها بازم مدل رو چک کنید.
سلام ،
یک سیستم 9 شینه داریم که در set بصورت/Busi /bus1*bus۹
شین ها معرفی شده است ، حالا برای بعضی از قسمت ها bus1 را نمی خواهم در نظربگیرم بصورت زیر در set معرفی کنم درست است ؟
/nonslack(busi) /bus2*bus6
و مثلا بصورت زیر در معادله استفاده کنم
eq1.. sum (nonslack, d*p(nonslack))
بله مشکلی نیست.
سلام، برای مسأله ای گمز minlp را با سالور baron حل کرده ولی solver statusآن کد 13یعنی Error system failure نشان می دهد و با knitro هم solver status کد 6 یعنی capacity problemرا ظاهر می شود ، و در هر دو حل مقادیر را صفر نشان می دهد، الان مشکل از سیستم است و یا از کد نویسی…ممنون می شوم راهنمایی کنید.
سلام
احتمالا مشکل از کد شما نیست. بد کد کردن معمولا انقد خرابکاری نمیکنه. مشکل از سیستم هست. به نظرم همین کد رو تو سایت neos هم آپلود کنین. شاید اون ریسورساش بیشتره و بتونه حل کنه. سالورهای دیگه مثل lindo هم تست کنید.
سلام، جهت مکان یابی DG در توزیع ، یک مسأله planning ده ساله داریم طوریکه تابع هدف شامل هزینه بهره برداری و هزینه سرمایه ای است جهت حل بایستی از دو سطحی استفاده کرد؟ یعنی ابتدا planning حل شود و در سطح دوم بهره برداری ؟ و در سطح اول متغیر باینری تعریف کنیم ؟یا می توان هزینه سرمایه ای یا هزینه ای بهره برداری در یک تابع هدف تعریف کرد و با قیود پخش بار، قیود شبکه و قیود ژنراتور و DG در گمز حل نمود؟ بدون اینکه تابع هدف را دو سطحی در نظر گرفت. ممنون می شوم راهنمایی کنید.
سلام
هر دوتاش قابل انجام هست. فقط جهت سهولت کار بهتره تک سطحی انجام بدید. چون حل چند سطحی متدلوژی ها و سختی های خودش رو داره
وقتی که دو تا تابع هدف داریم که به هم مربوط میشن، در مقالات به صورت دو سطحی مدل میکنن، برخی هم به صورت پارتو جواب ها رو درمیارن و بعد بهترین جواب رو انتخاب میکنن
فرق این دو روش در چیه؟
سلام و ادب
اولی یک جواب به شما میده، دومی یک مجموعه جواب
منظورم از جواب، مقدار بهینه ایجاد شده برای توابع هدف و متغیرهای مسئله هست.
هر کدوم از اینها جایگاه استفاده مختص به خودشون رو دارن.
مثلا تو یه مسئله مکانیابی، ذات مسئله اینطور هست که اول تصمیم استراتژیک (احداث) انجام میشه بعدش سایر تصمیمات. پس منطقیه دو سطحیش کنن.
یا مثلا تو یه مسئله تئوری بازی، منطقیه که اول leader تتصمیم میگیره، بعد follower بر اساس تصمیمات لیدر استراتژی خودش رو میچینه.
سلام من یک مسأله دو سطحی که به شکل Minmax () بوده را به صورت یک سطح در اوردم. اولین سوالم این بود که خود گمز میتونه با همون دو سطح حل کنه و چگونه ؟!
دومین سوالم اینه من پارامتری به عنوان data(t,*) تعریف کردم و مقدار دهی کردم
اکنون در معادلات استفاده کردم مثلاً به صورت data(t,’a’) و ارور ۱۴۹ میده.
کسی هست کمکم کنه…ممنون میشم
سلام و ادب
سوال اول: خیر. باید از یک متدلوژی استفاده کنید. مثلا از تک هدفه کردن، چند هدفه کردن و…
سوال دوم: صور عمومی رو دقت کنید.
سلام خدمت اساتید محترم و گرانقدر، عذرخواهی میکنم برای تاب آوری در سیستم قدرت می تونید راهنمایی بفرماید به چه صورتی میتونم در گمز این موضوع رو پیاده کنم؟؟ هر کدام از دوستان بتونن جواب بدن واقعا ممنونشون میشم
سلام و ادب
در حل مدل دوسطحی، برخی قیود مثل کمینه و بیشینه تولید واحدها که در سطح پایین مسئله هست را حتما باید وارد مدل کنیم و متغیرهای دوگان آنرا هم لاجرم وارد کنیم یا میتوانیم برای کمتر شدن تعداد متغیرها، این چنین قیود را با پسوندهایی مثل x.up و x.lo به مدل بفهمانیم؟
سلام
یعنی بعد از اینکه مقدار متعیر تو سطح اول جواباش به دست اومده میخواین ببرین تو مدل دوم؟ اگه اینجوریه که مشکلی نیست. ولی با این نماد هایی که گذاشتین نمیشه. و بهتره یه پارامتر دیگه تعریف کنین و ببرین دو مدل دوم.
اگه منطورتون خود دوگان هست، بله مشکلی نیست.
سلام
شما به یک سطح تبدیل کردید؟!
یا با همون دو سطح حل کردید.
میشه بگید چ جوری؟!
سلام جناب دکتر
چطور میتونم مساله بهینه سازیمو با نرم افزار گمز از طریق روش MISOCP حل کنم/؟
سلام
بله احتمالا با سالور گروبی میتونید نتایج مناسب بگیرید
Hi, dear Dr. Sorodi
How I should solve my optimization program, MISOCP, by GAMS
سلام ممنون بله این کارهارو هم انجام دادم. الان رانش سریع تر شده. کلا دستوری در گمز وجود داره که همه RAM و cpu رو استفاni میکنه که سریع ران بشه چه دستوری هست؟
اینجا رو بخونید
https://forum.gamsworld.org/viewtopic.php?t=8941
سلام، ایمیل اقای دکتر رو اگه میشه بفرمایید
سلام
از آخرین مقالات ایشون میتونید ایمیلشون رو بردارید.
خیلی ممنون این کارو هم انجام داده بودم. پخش بار خطی شده هست که فقط اندازه ولتاژ و توان اکتیو رو لحاظ کرده و از زاویه ولتاژ و توان راکتیو چشم پوشی کرده.
اینهم اسم مرجعی که پخش بارو خطی کرده به این روش
Bilevel approach for optimal location and contract pricing of distributed generation in radial distribution systems using mixed-integer linear
بازهم سرعت ران پایینه مخصوصا برای حالتی که قیود انعطاف پذیری رو هم به مساله اضافه میکنم بیشتر از یک ساعت زمان میبره تا به پیدا کردن گپ برسه.
برای همین خواستم بپرسم کدی که در انتها نوشته میشه و از تمام حجم cpu و هسته های کامپیوتر استفاده میکنه چی هست در اینترنت نتونستم پیدا کنم!
سلام
ببینید به طور معمولی گمز از همه هسته ها استفاده میکنه. ولی باید اجبار کنین بهش که اولویتش رو بیشتر کنه تو پروسس ها. مثلا میتونین تو تسک منیجر این کار رو بکنین یا thread های درگیر رو بیشتر کنین.
ممنون این کارو انجام دادم و یه سری شرط برای قیدهای بخش بارم گذاشتم که شینهایی که اتصالشون صفره دیگه بررسی نکنه الان رم 0.3 گیگابابت میکشه و به نصبت حالت قبل خیلی بهتره شده اما هنوز پروسه ران و تموم شدن گپ طول میکشه حدود یک ربع مثلا
این مدت زمان برای ران گمز طبیعیه؟
با توجه به اینکه در هر شین و هر ساعت 15 سناریو دارم و کل سناریوهام 33*24*15 هست.
طبیعیه طول بکشه
توی قسمت solve var نگاه کنید
اونجا اگر متغییر اضافه می بینید
منظورم متغییرهاییه که حد بالاشون و پایینشون صفره مثلا فیکس هستند
اینا رو اگه بتونید توی معدلاتتون از بین ببرید با شرط درست
کمک می کنه به کاهش زمان ران برنامه
الان توی سوالتون هم واضح نیست ACoPF ران می کنید یا DC oPF
اگر AC هست نقطه شروع به کار مسله مهمه
سلام جناب دکتر علت اینکه در گمر مدل هنگام ران حجم زیادی را میکشد و شمانده بیشتر میشود ولی مساله ران نمی شود چه چیزی است؟
کد خطایی ندارد اما وارد پروسه ایجاد گپ و حل مساله نمی افتد
این مشکل به حافظ کامپیوتر برمیگردد !
ابعاد مساله رو کم کنید ببینید چه اتفاقی می افته
اصولا ممکنه یه تعدادی متغییر بدون اینکه نیازی داشته باشید تو مدلتون باشند (که مثلا همیشه صفر هستند)
اونا رو باید بتونید تو معادلاتتون با گذاشتن شروط مناسب حذف کنید
سلام جناب دکتر
علت اینکه به مدل دوسطحی تک خطی وقتی سناریو اضافه میکنم حتی 2 سناریو یا 4 سناریو رانش همگرا نمیشه که به حواب اخر برسه چه مواردی میتونه باشه؟
با سلام
توضیحتون خیلی کلی هستش اما تا اونجا که متوجه شدم چون مدلتون دو سطحی هست و احتمالا بصورت یک حلقه تکرار داره حل میشه باید دو بخش را چک کنید. اگر مدل به شکلی که گفتم هست باید ببنید در تکرار ها مقدار شرط توقف تعریف شده چی روندی داره و نکته دوم اینکه سیگنالی که ارتباط بین دو سطح را داره مشخص میکنه با اضافه کردن سناریو چه تغییری درش بوجود میاد. برای راهنمایی بیشتر باید توضیح کاملتری در مورد کار بیان کنید.
سلام جناب دکتر
مدل من یک ارور دارد
equation infeasible due to rhs value
که معادله بالانسم هست
باید چه چیزاهایی رو بررسی کنم؟ کلا معادله اشتباه نوشته شده!
نه الزاما
دیتا رو بررسی کنید
یه کاری کنید که ارضا شدن اون قید آسونتر بشه
بعد ببینید کار می کنه با نه
سلام جناب دکتر،وقتتون به خیر
در صورت امکان میخواستم بدونم چه تفاوتی میان بهینه سازی Distributed Robust Optimization و
Distributional Robust Optimization هست ؟ آیا هردو یک مفهوم رو میرسونن یا تفاوت بین این دو وجود داره ؟
ممنون از لطف شما.
متاسفانه نمی دونم.
سلام distributed robust optimization از روشهای distributed optimization همانند admm برای حل مسئله استفاده میکنه، اما distributional robust optimization از روشهای بهینهسازی داده محور برای حل مسئله استفاده میکنه. در واقع این دومی مربوط به dro و ddro که مباحث data-driven هستن رو شامل میشه. و این دو مورد شاید تا حدی شبیه هم باشن، اما در بیس کار کلا دو چیز متفاوتن
سلام آقای دکتر سرودی
برنامه ی گمز برای حل سناریو نوشتم. جمله تابع هدف ارور می دهد.
Solve problem using MIP minimizing z(s);
چه باید بکنم؟ چون هدف اینه که 10 عدد تابع هدف به ازای هر سناریو داشته باشم.
تابع هدف نمی تواند اندیس داشته باشد
سلام جناب دکتر سرودی
علت منفی شدن تابع هدف در صورتی که قیود پخش بار را به مدل اضافه میکنم چه میتواند باشد؟
قبل از قیود پخش بار مدل کاملا درست جواب میداد
سوالتون اینجوریه که اگر من ۳ رو به x اضافه کنم چرا جواب میشه ۵ ؟
نباید توضیح بدید x چیه ؟
سلام جناب دکتر سرودی
من به مدل دوسطحی ایم که کاملا درست جواب میداد و با سالور MIP حل میشد شبکه 33 باسه اضافه کردم
از انجایی که معادلات پخش بار را به صورت کوادراتیک در مدل قرار دادم با سالور RMIQCP سعی کردم مدل را حل کنم
مشکلی که وجود دارد با حل مدل اصلا معادلات پخش بار در مدل حل نمیشود و در قسمت equation list
—- Power_flowa1 =E=
NONE
—- Power_flowa2 =E=
NONE
—- Power_flowa3 =E=
NONE
—- Power_flowa4 =E=
NONE
جواب ها به این صورت است
آیا میتوانم کد برنامه را برای شما ایمیل کنم؟
مشکل از کجا میتواند باشد؟!
با تشکر
متاسفانه جواب سوالتون رو نمی دونم
سلام
مدل شما Miqcp هست به نظرم. نه rmiqcp. حالت دوم فقط وقتی استفاده میشه که بخواین آزادسازی انجام بدید. ضمنا این این eq list که دادید ادرس مناسبی نیست.
مسئله من plannig هست که درونش uc رو دیدم.واسه اینکه زودتر جواب بگیرم مدت زمان پلنینگ رو 3 ساله در نظر گرفتم.که بعدا 5 سال در نظر میگیرم.اون شرایطی که توضیح دادم متاسفانه برقرار هست. امروز همینجور دستی و فقط صرفا جهت تست، به گمز گفتم که تمام نیروگاه های حرارتیم برای تمامی سناریوهام در ساعت 1 (از 24 ساعت) و برای هر سه سال، 30 مگاوات تولید کنند.p(year,’t1′,s).fx=30;
با این دست کاری که امروز انجام دادم ، تقریبا جوابم خیلی قابل قبول بود.فقط دوتا از نیروگاه های کاندید احداث کرد و نیروگاه های موجودم مشارکت خوبی داشتند.در کل همه چی ایده ال به نظر میرسید.اما وقتی که فرضمو صرفنظر کردم مشکل همچنان پا برجاست.
به هر حال ایراد از مدلتونه نه GAMS
آقای محمودی با عرض معذرت، فکر کنم داخل پاسخ تون دستورات رو ننوشتین.چون چیزی برای من نمایش داده نمیشه.ممنون از لطف تون
با سلام و عرض پوزش فراوان،آقای محمودی لطف میکنید مجددا آپشن هایی که مد نظرتون بود رو ارسال کنید. ممنون میشم.
بله عذرخواهی میکنم.
ممکنه مشکل از اینها هم نباشه. فقط دارم تست میکنم کار شما رو. نسخه 24.7 رو نصب کنین مثلا.
سلام. آپشن intvarup=0 رو به کدم اضافه کردم.جواب نرمال و بصورت اینتیجر سولوشن هست.تابع هدفم قبلا منفی بود الان مثبت شده.ولی نتایج خروجیم درست و منطقی نیست.این دستور که اضافه کردم در عمل چه مفهومی داره؟الان یعنی کدم درسته یا غلط؟ممنون از وقتی که میذارین.با تشکر فروان.
با درنظر گرفتن این آپشن، یه سوال هم از آقای دکتر سرودی داشتم.هدف مدلم مینیمم کردن هزینه احداث و بهره برداری هست.مقدار voll=1000$/mwh و هزینه احداث واحدهای کاندیدم بین 45000 تا 65000 $/MW هست.
به ازای voll=1000، هیچ احداثی اتفاق نمیوفته.ولی در بعضی سناریوها که واحد حرارتی باید تولید میکرده،بجاش حذف بار داده.و در بعضی سناریو ها تولید داشته. توان بادی در اکثر سناریوهامو جذب کرده.قید های رمپ و حد خطوط هم مشکلی ایجاد نمیکنند.در کل حذف بار زیادی داشته.در صورتی که میتونست حرارتی تولید کنه.
در حالت دوم برای اینکه گمز احداثو ببینه، مقدار voll رو به 300000 تغییر دادم.در این حالت احداث دیده شد ولی اصلا بهینه نیست.روی همه ی باس ها احداث کرده و بیشتر وظیفه بهره برداری رو این واحدهای جدید بعهده گرفتند.واحدهایی که هزینه بهره برداری شون از 15000تا25000 $/mwh هست.
تا جایی هم که بررسی کردم مدلم اشتباهی نداره.ممنون میشم راهنمایی کنید.از وقتی که میذارین واقعا سپاسگزارم.با تشکر بی نهایت.
ببینید شما در مساله بهره برداری باید در نظر داشته باشید که مدت زمان برنامه ریزی چقدره
برای بازه کوتاه احداث عملا بی فایده است
شما باید بازه برنامه ریزی رو افزایش بدید
با سلام.بنده یک مدل minlp دارم که با سالور dicopt اونو حل میکنم.هدف مینیمم کردن هزینه احداث و بهره برداری باهم می باشد.وقتی که Run میگیرم،متغیرهای باینری و اینتیجرم اعدادی بجز اعداد صحیح هم میگیرند.(اعشاری).مسئله رو خیلی بررسی کردم اما متاسفانه به جوابی نرسیدم.ممنون میشم راهنمایی کنید.با تشکر.
از روی پیغام های سالور چک کنید ببینید اصلا حل شده یا نه
بعضی موارد به دلیلی infeasible شدن جواب نامربوط میدهد
سالور استاتوس که نرمال کامپلیشن هست و مدل استاتوس اینتیجر سولوشن شده ولی خب مقدار تابع هدفم منفی بدست اومده.
سلام
option های زیر رو به مدل اضافه کنین اول. نتیجه رو مجددا اعلام کنین.
ممنون مشکل حل شد و به خاطر پریونیت نکرد مقادیر شبکه بود که پخش بارها مشکل داشت.
یک سوال دیگر برای یک equation میخواهم همزمان دو شرط اعمل کنم در گوگل متاسفانه جوابی نیافتم
$(ord(t) < 24)
$MG_Bus(j,i)
برای همزمان وارد کردن این دو شرط در یک خط قبل از دو نقطه باید چیکار کنم؟
خیلی ساده
سلام جناب دکتر سرودی من مدل مساله ام (که یه مدل دوسطحی و با سالور MIP حل میکنم و با شرایط KKT و دوگان تک سطحی و خطی کردم) کاملا درست جواب میده و الان به کدهام قیود خطی پخش بار رو در سطح اول که مربوط به تابع هدفه شرکت توزیعه اضافه کردم اما جواب اینفیسیبل میشه
کدها به آین صورت هستند:
Power_flow1(i,t).. P(i+1,t) =e= P(i,t) – BusData(i+1,t,’Pd’);
Power_flow2(i,t).. Q(i+1,t) =e= Q(i,t) – BusData(i+1,t,’Qd’);
Power_flow3(i,t).. V(i+1,t) =e= V(i,t) – ((Linedata(i,i,t,’r’)*P(i,t))+(Linedata(i,i,t,’x’)*Q(i,t)))/1;
Balance(t).. PEin(t) =g= sum((j,i),PMG(j,i,t)) + sum(i,BusData(i,t,’Pd’));
وقتی در بالاتر حد مین و ماکس ولتاژ رو برمیدارم مساله جواب میده هرچند تابع هدف که سود هست منفی بدست میاد! اما وقتی محدودیت های ولتاژ در مساله هست کلا جواب نمیده!!!
ممنون میشوم راهنمایی کنید
با تشکر از سایت خوبتون
وقتی تابغ سود منفی میشه باید ببینید علت چیه
ایا ولتاژ ها ازحدود بیرون میزنه ؟
بار شبکه رو کم کنید چک کنید مجدد
با سلام
من یک مساله بای لول دارم
که در قیود سطح پایین (follower) آن متغییرهای باینری دارم
آیا روش kkt و خطی سازی قیود complementary slackness، برای حل این نوع مساله مناسب است؟
نمی دونم
با تشکر از پاسخگوییتون،
من بخش خطاهای گمز،قسمت تلرانس متغیرهای Integer رو مطالعه کردم و در برنامه بکار بردم اما مشکل حل نشد. این معادله هم در مقاله داده شده است به این صورت که سیگمای w در بازهtهای عضو Ts1 تا (Tf1-p(i برابر با یک باشه. من میدونم که اشکال کار من اینه که قسمت سمت راست با چپ برابر نیس اما نحوه رفع این مشکل و اعمال معادله به شکل درست گمز رو نمیدونم لطفا مرا در نوشتن این کد در گمز راهنمایی نمایید.
شما یک سیگما بنویسید روی t
سپس با دستور $ به گمز بگید t در چه بازه ای باشد
نحوه نوشتن این دستور بارها در این سایت توضیح داده شده است
با سلام ؛
من این کد رو مینویسم
;eq13(j,i) .. sum(t$(ord(t)>= Ts1(j,i) and ord(t)<=Tf1(j,i)-p(i)),W(j,i,t)) =e= 1
که با این ارور
Equation infeasible due to rhs value
مواجه میشم اما با تغییر علامت کوچکتر به بزرگتر در Ord دوم مشکل infeasible حل میشه اما جواب درست به دست نمیاد، لطفا در این ضمینه راهنمایی بفرمایید. متغیر w نیز یک متغیر باینری میباشد. باتشکر
سلام
این خطا رو تو بخش خطاهای گمز مورد بررسی قرار دادیم.
وقتی همچین اروری میبینید، مفهوم اینه که با توجه به فرمول، شرط ها و داده های وارد شده در این معادله، به هیچ وجه امکان نداره که مسئله شدنی باشه. دقیق تر بگم. همه محدودیت ها و معادلات دیگه رو هم اگه بندازیم دور، همین یه معادله کافیه که مسئله نشدنی بشه.
نکته مهم تر اینه که این خطا قبل از حل شدن مسئله توسط سالور (حتی قبل از تلاش برای حل کردن) به کاربر نشون داده میشه!
نتیجتاً معادله میگه که: امکان ندارد سیگمای نوشته شده برابر با یک شود!
ممنون از لطف شما ،
ارور ۱۴۹ گمز رو بهم میده ؛
من داخل branch و parameter ،اندیس L رو تعریف کردم _ولی بازم ارور میده بهم ،این اندیس L باید دقیقا کجا اضافه بشه ؟ داخل Branch ? Conex ؟ Pij ؟
در پاسخ قبلی ذکر شد کجا اضافه بشود
با عرض سلام جناب دکتر سرودی
در یک سیستم IEEE 118 باسه، دو مداره بودن خطوط را در جدول Branch(bus,node,*) ایراد میگیرد. حتی در صورتیکه ایندکسی مانند L برای خط قبل از Bus,node میشود بصورت : L,Bus,node,*)) ، بازهم ایراد میگیرد. برای رفع ایراد راه حلی وجود دارد یا باید از فرمول خطوط دومداره آنها را یکی کرد ؟
ممنون از لطف شما
باید جدول رو به این صورت بنویسید
در فرمولها هم باید اصلاح شود
سلام آقای دکتر_ وقتتون به خیر
یه مدل 33 باسه دارم که معادلات پخش بار Ac رو بدون خطی کردن و با سالور MIQCP=CPLEX حل میکنم و جواب میگیرم، ولی وقتی سیستم 118 باسه رو وارد میکنم به مشکل INTEGER INFEASIBLE برمیخورم_ آیا نیاز به خطی کردن قید SOCP هست ؟
اگر کد شما درست باشد به سیستم نباید وابسته باشد
شرایط اولیه را چک کنید
چرا متغییر باینری دارید ؟
قیودی را که در آنها متغییر باینری وجود دارد را چک کنید
در 118 باسه این جواب رو میده:
S O L V E S U M M A R Y
MODEL ADN1 OBJECTIVE
TYPE MIQCP DIRECTION MINIMIZE
SOLVER CPLEX FROM LINE 793
**** SOLVER STATUS 1 Normal Completion
**** MODEL STATUS 10 Integer Infeasible
**** OBJECTIVE VALUE NA
RESOURCE USAGE, LIMIT 17.047 1000.000
ITERATION COUNT, LIMIT 1714 2000000000
EVALUATION ERRORS NA 0
و در قسمت سالور هم آپشن ها رو اینجوری تنظیم کردم :
MODEL ADN1 /ALL/;
Option MIQCP = CPLEX;
Option sysout=on ;
Option optca=0;
Option threads=5;
option optcr=0;
Option reslim=20000000;
Option iterlim=20000000;
Option limrow=100;
Option limcol=100;
SOLVE ADN1 USING MIQCP MINIMIZING Z;
و همه جواب ها داخل 118 باسه صفر میشوند ولی 33 باس به جواب کامل و بهینه میرسه .بهینه سازی بصورت یک مدل bi-level بوده و یکسری متغیر ارتباط دهنده دو سطح(operation & planning) دارم که از نوع اینتیجر هم دارم…مشکل از لایسنس های کرک شده گمزی که در ایران استفاده میکنیم نیست احیانا؟
ممنون از لطفتون آقای دکتر .
اصولا با تغییر کیس نباید مشکلی ایجاد شود
باید تمامی قید ها را تک تک چک کنید و ببینید ایراد از کجاست
بدون شک برای کیس جدید فرضیاتی داشته ایذ که در کیس قبلی وجود نداشته اند
مثلا vbase sbase حدود خطوط و ….
با سلام من یک سوالی داشتم در رابطه با شرایط kkt…
بعد از نوشتن قیود kkt و قیود Complementary slackness آیا حتما باید این قیود توسط روشهایی مثل Big-M خطی شود؟
آیا نمیشود با MINLP حل کرد؟
مدل شما minlp می شود که در صورت بزرگ نبون مساله قابل حل با سالور های موجود است و نیازی به bigM نیست
سلام استاد سرودی ارجمند.
من فارغ التحصیل ارشد برق قدرت دانشگاه آزادم.
وحدود سه سال در زمینه بهبود الگوریتم های فرا ابتکاری در سیستم های قدرت نظیر جایابی جبرانسازها، بازآرایی، ED و… کار کردم. همچنین الگوریتم PSO را بهبود دادم و مساله ED رو باهاش حل کردم و در ژورنال Applied soft computing ریوایز خورده.
تمامی موارد بالا رو با کدنویسی در نرم افزار متلب انجام دادم.
جدیدا که مقالات اساتید رو در ژورنال های معتبر چک میکنم، میبینم اکثرا بر اساس ریاضی هستن و نظیر سالورهایی مثل سی پلکس حل شده اند. از طرفی اخیرا با یک استاد در جهت اپلای صحبت کردم گفتن که اولویت با کسانی هست که گمز کار میکنن.
خدمت شما عرض کنم من الان متوجه شدم که چه اشتباهی رو مرتکب شدم و گمز کار نکردم و الان چنتا سوال دارم ممنون میشم راهنمایی کنید.
1- آیا تصمیمی که گرفتم در جهت کوچ از فراابتکاری و متلب به سوی گمز درست هست؟
2-آیا برای من که بیس ریاضی قوی ندادم، یادگیری گمز راحته؟ چونکه میخوام دکتری اپلای کنم قطعا باید مقالات خوبی را انجام بدم و خواستم مطمئن بشم که با توجه به سطح ضعیف ریاضیم در اثبات فرمول و… به مشکل برنمیخورم.
3-گمز رو سریع میشه یادگرفت؟ چه رفرنسی را پیشنهاد میدین که خیلی کاربردی آموزش داده باشه؟
4-اگر پیشنهادی دارید ممنون میشم راهنمایی کنید با توجه به توضیحاتم.
پیشاپیش از محبتت ممنونم.
1- بلی درست است
2-هیچ کاری راحت نیست اگر دنبال کار راحت هستید راحت ترین کار هیچ کاری نکردن است
3-بلی می شود سریع یاد گرفت
یک مثال را با گمز حل کنید (هر مثالی ) یاد می گیرید
4-توصیه می کنم کار کنید
سلام جناب دکتر سرودی ارجمند
برنامه من یک مدل دو سطحی که از روش KKT و دوگان تک سطحی و خطی شده و نتیجه MIP شده رو با solver ceplx حل کردم
یک بار که قیود مساله م کمتر **** MODEL STATUS 8 Integer Solution این وضعیت رو نشون میده
یک بار هم که یه سری قیود به مساله اضافه میشه **** MODEL STATUS 1 Optimal این وضعیت نمایش داده میشه
کلا مدل تک سطحی و خطی شده MIP هست در هر دو حالت وضعیت مدل با این توصیفات درست هست در ر دو حالت؟
status 1 یعنی جواب بهینه گلوبال پیدا شده
status ۸ یعنی جواب feasible پیدا شده (می توانید با دستور optcr=0) از گمز بخواهید به جستجو برای جواب گلوبال ادامه دهد
با سلام،
من میخوام تقاضای حرارتی 10خونه رو برای بازه48 تایی تعریف کنم؛مثلا بگم تقاضای حرارتی خونه اول در بازه اول 1.8، تقاضای حرارتی خونه دوم تو بازه اول 1.4 و تاآخر.
[css]
Table E(j,t,*)
Dh
j1.t1 1.8
j2.t1 1.4
j3.t1 1
j4.t1 2
[css]
به این شکل بنویسم کد طولانی میشه راهی برای خلاصه کردن وجود داره؟
[css]
Table Data(J,t)
t1 t2 t3
j1 14 0 40
j2 15 0 170
j3 30 0 520 ;
[css/]
سلام آقای دکتر سرودی
ممنون بابت وقتی که در اینجا می گذارید و همچنین بابت کتاب خوبتون
برای حل مسئله پخش بار AC بمنظور مینیمم کردن هزینه های تولید برای یک سیستم 3 شینه با یک ژنراتور (در شین 3) و دو بار (در شین 2 و 3) کد زیر رو نوشتم ولی جواب شدنی نمیشه و علت آن این است که توان عبوری (PL) بین دو شین صفر است. لطفا ایراد کد و علت صفر شدن PL (توان عبوری بین خطوط) را بفرمایید.
با تشکر
ایراداتی که در جواب این کد می آید بشرح زیر است:
1) An equation in the pre-triangular part of the model cannot be solved because the critical slack is at a bound.
2) The number of nonlinear derivatives equal to zero in the initial point is large (= 25 percent). A better initial point will probably help the optimization.
3) Infeasibility in pre-triangular part of model.
4) Equation Eq02(2,24,ln1) has been solved with respect to the slack After the last operation the residual is still 0.0006.
GAMS Code
Sets
i Indices of buses/1*3/
l Index of lines /ln1*ln2/
t Index of time/1*24/
;
Alias(i,j);
Scalars
cD /2/
cG /0.1/
Slack /1/
;
table BD(l,*) Bus data
bs br R X PDemand pGmax
ln1 1 2 0.117 0.3867 0.0006 0
ln2 2 3 0.4446 0.1469 0.0002 0.03
;
Variables
pD(i,t)
pG(i,t)
OF
g(i,j)
b(i,j)
pL(l,t)
v(i,t)
theta(i,t)
;
pG.lo(i,t)=0;
v.lo(i,t)=0.95;
v.up(i,t)=1.05;
Equations
hadaf
Eq01
Eq02
Eq03
Eq04
Eq05
Eq06
Eq07
Eq08
;
hadaf..OF=e=sum((i,t),(-cD*pD(i,t))+(cG*pG(i,t)));
Eq01(i,j,t)..pG(i,t)-pD(i,t)
-sum(l$(ord(i)=BD(l,’bs’) and ord(j) = BD(l,’br’)),pL(l,t))
+sum(l$(ord(i)=BD(l,’br’) and ord(j) = BD(l,’bs’)),pL(l,t))
=e=0;
Eq02(i,t,l)$(BD(l,’br’)=ord(i))..pG(i,t)=l=BD(l,’pGmax’);
Eq03(i,t,l)$(BD(l,’br’)=ord(i))..pD(i,t)=e=BD(l,’PDemand’);
Eq04(i,j,l)$(BD(l,’bs’)=ord(i) and BD(l,’br’)=ord(j))..g(i,j)=e= BD(l,’R’)/(sqr(BD(l,’R’))+sqr(BD(l,’X’)));
Eq05(i,j,l)$(BD(l,’bs’)=ord(i) and BD(l,’br’)=ord(j))..b(i,j)=e=-BD(l,’X’)/(sqr(BD(l,’R’))+sqr(BD(l,’X’)));
Eq06(i,j,t,l)$(BD(l,’bs’) = ord(i) and BD(l,’br’) = ord(j))..pL(l,t) =e= (-g(i,j) * sqr(v(i,t))+v(i,t) * v(j,t) * (g(i,j) * cos(theta(i,t)-theta(j,t))+ b(i,j) * sin(theta(i,t)-theta(j,t))));
Eq07(i,t)$(ord(i)=Slack)..theta(i,t) =e= 0;
Eq08(i,t)$(ord(i)=Slack)..v(i,t) =e= 1;
Model ABC/
hadaf
Eq01
Eq02
Eq03
Eq04
Eq05
Eq06
Eq07
Eq08
/;
solve ABC using NLP minimizing OF;
کد AC-OPF در کتابخانه گمز موجود است.
ضمن تشکر از جناب آقای دکتر سرودی بابت پاسخ دهی به سوال مطرح شده.
من یک سوال دیگری داشتم در رابطه با مساله بای لول
با فرض اینکه یک مساله داریم که میخواهیم در لول بالا تابعی به شکل ” ax+by ” را min
و در لول پایین تابع ” cx+dy ” را min کنیم
در صورت حذف شدن یکی از ترم های لول بالا مثلا ” by ”
آیا مساله از حالت بای لول خارج شده و یک سطحی می شود؟
با توجه به اینکه x و y متغییرهای تصمیم ما در هر دو لول هستند و بین این دو سطح رد و بدل می شود؟
خیر مساله هنوز دو سطحی است
با سلام
من یه مساله Bilevel با دو فالور دارم
در لول بالا میخام هزینه بهره برداری رو حداقل کنم و در لولهای پایین سودهایی رو حداکثر کنم
برای حل توسط Kkt conditions
از emp استفاده کردم
خروجی هایی دارم منتهی این Warning رو هم دارم
** Warning ** The variance of the derivatives in the final
point is large (= 4.3 ). A better scaling or
better bounds on the variables will probably
help the optimization.
و اینکه دو تا متغییر باینری هم در مدل سازی دارم منتهی تمام خروجی های این متغییر ها باینری نیست؟
چیکار کنم؟ آیا مدلسازی و سالور ام غلط است؟
بهترین راه اینه که در لول پایین شرایط kkt رو بنویسید
مساله رو تک سطحی کنید (که البته غیرخطی میشه)
و اون مساله MINLP ایجاد شده رو حل کنید
این راهی است که به ذهن من می رسه
با سلام خدمت آقای دکتر سرودی و تشکر بابت وقتی که به پاسخ ها اختصاص می دهید.
در باره برنامه ریزی تصادفی (stochastic programming) سوال دارم.
هنگام سناریوسازی با استفاده از شبیه سازی مونت کارلو از مقادیر پیش بینی شده (forcasted)، به چه ورودی هایی نیاز داریم؟
در اینصورت لازم است تابع توزیع نرمال را از بدست بیاوریم؟
برای مثال، تولید سناریو (scenario generation) برای قیمت برق به چه صورت است؟
بابت وقتی که می گذارید پیشاپیش ممنون شما هستم.
سلام
شما با استفاده از داده گذشته باید بتوانید تابع توزیع احتمالی برای داده (مثلا قیمت بازار) خود فیت کنید
زمانی که شما تابع توزیع را داشه باشید تولید سناریو آسان خواهد بود
می توانید با آن تابع توزیع، عدد تصادفی تولید کنید
سلام آقای دکتر
وقتتون به خیر،
اگر بخوام در گمز یا بطور کلی،دو یا چند شبکه 33 باسه رو به هم وصل کنم و یک گرید در نظر بگیرم، چه کار باید کنم ؟
میشه راهنمایی کنید .
خیلی ممنون از لطف شما
اتصال دو باس به یکدیگر چگونه انجام می شود ؟
به همان ترتیب می توانید دو شبکه را بهم وصل کنید
سلام جناب دکتر
در صورت امکان درباره بهینه سازی با روش Distributed Robust Optimization مرجعی برای یادگیری یا کددهی در گمز لطف میکنید ؟
ممنونم جناب دکتر
http://www.princeton.edu/~chiangm/DRO1.pdf
سلام و وقتبخیر
مدل سازی سه هدفه با روش محدودیت اپسیلون انجام دادم،داخل جوابها،جواب تکراری هم وجود داره و همچنین مقادیر توابع هیچ ترتیب صعودی یا نزولی وجود ندارند.
آیا باید همواره جواب ها باید دارای ترتیب صعودی یا نزولی و بدون تکرار باشند؟ یا این قضیه برقرار نیست اصلا
باید چواب ها non-dominanted باشند
سلام جناب دکتر سروردی،
اگر در یک مساله Bi-level که بصورت برنامه ریزی و بهره برداری است، در قسمت قیود بهره برداری قید باینری داشته باشیم، و نیاز به تئوری دوگان داشته باشیم از قیود بهره برداری، از قیود باینری چگونه میتوان دوگان گرفت ؟ آیا امکان هست چنین چیزی ؟
خیلی خیلی ممنون از وقتی که در اختیار ما دانشجوها قرار میدید ..
برای بجث دوگان در مسایل MIP مقاله زیر را مطالعه نمایید
سوالتون به گمز مربوط نیست
https://www.ep.liu.se/ecp/014/005/ecp014005.pdf
سلام آقای دکتر
در ارتباط با کد نویسی BIG_M در گمز و روش CCG میشه راهنمایی کنید ؟
ممنون از لطفتون
کد نویسی BIG_M
http://www.laits.utexas.edu/compeco/GAMSZhang.pdf
کد نویسی ccg
https://old.gams.com/presentations/bussieck_cg.pdf
سلام
بهینه سازی سه هدفه به روش اپسیلون انجام دادم،الان انتخاب جواب بهینه به عهده تصمیم گیرندس یا مثل دو هدفه فرمول داره؟
از روش fuzzy satisfying method (مستقل از تعداد توابع) می توانید جواب نهایی را انتخاب کنید
(گد گمز موحود نیست اگر مایل باشید می توانید بنویسید)
مقاله زیر را بخوانید
3.2.2. Stage II (Selecting ‘the best’ solution)
https://researchrepository.ucd.ie/bitstream/10197/6209/1/ren.PDF
سلام آقای دکتر
امکان داره تو سایت یه آموزش در مورد پیاده سازی روش لاگرانژ برای آزاد سازی قیود تو مسائل بهینه سازی بذارید؟ یا یه مرجه خوب برای این موضوع پیشنهاد بدید؟-مثلا تو مسائل bi-level-
کتاب تون بسیار عالی تون رو مطالعه کرده ام اما در مورد روش لاگرانژ مطلب زیادی نیست
تشکر
سلام
https://www.springer.com/gp/book/9783540276852
با سلام
آقای دکتر در صورت امکان، در مورد قید حفظ پیوستگی و شعاعی بودن شبکه توزیع بعد از بازآریی به غیر از استفاده از گراف و ماتریس در نرم افزار گمز راهنمایی بفرمایید.
جواب سوالتون ساده نیست
توصیه می کنم مقاله زیر رو بخونید
https://hal.inria.fr/inria-00504914/document
سلام جناب سرودی ،
جسارتا میخواستم بدونم اگر یه بهینه سازی Bi-level داشته باشیم ، بطوریکه سطح اول برنامه ریزی و سطح دوم بهره برداری باشد ،و در قیود ارتباط دهنده دوسطح یک قید تپ چنچر بصورت (Dommy Binary)
داشته باشیم ، الزاما مسئله رو سه سطحی میکنه ؟ مثلا بجای روش CCG باید از Nested CCG استفاده کنیم یا نه ؟ نیاز به دوگان قید باینری هست ؟
ممنون میشم توضیح بدید – و ممنون از لطف شما
در مسایل bilevel همیشه متغییر ارتباط دهنده دوسطح داریم
چرا می فرمایید ۳ سطحی ؟
در حالت کلی باید شرایط kkt را نوشته و تک سطجی کنید
جال ممکن است برای سهولت حل از روشهای تکراری مثل بندرز استفاده کنید (مخصوصا برای متغییر های باینری)
کدام قسمت result نهایی هست ؟
سلام جناب دکتر سرودی
ممنون از وقتی که در اختیار ما قرار میدید ،در صورت امکان درباره مدل سازی عدم قطعیت منابع بادی در گمز میشه توضیح مختصری بفرمایید .
ممنون میشم …
توصیه می کنم برای یادگیری مقدمات این مساله این دو مرجع را مطالعه بفرمایید
https://researchrepository.ucd.ie/bitstream/10197/6153/1/rser-r1.pdf
Link2این دو مقاله بیسیک این مساله را برای شما توضیح می دهد البته کد گمزی در آنها نیست
سلام
ببخشید ضرایب تابع لاگرانژ که در بهینه سازی در گمز اجرا می شود را چطور می توان از نتایج نهایی پیدا کرد ؟
برنامه حداقل سازی هزینه برای پیدا کردن تراکم خطوط دارم و به دنبال ضریب لاندا که در تابع بهینه سازی هست ،،هستم ( منظور از ضریب لاندا ، ضریب قید در تابع لاگرانژ است )
از توجه شما ممنونم
شما می توانید از ضرایب .m قیود استفاده کنید
سلام آقای دکتر
ممنون بابت سایت و کتاب خوبتون
من یه مدل سه هدفه رو با روش محدودیت اپسیلون دارم کدمیکنم.
طبق مثال کتاب خودتون دو هدفش رو انجام دادم
واسه تبدیل به سه تابع هدف مشکل دارم،آیا فایلی مثالی هست که بتونم سه تابع هدف رو طبق اون انجام بدم؟توضیحاتش رو خوندم اما بلد نیستم کدش کنم
ممنون میشم راهنمایی کنید.
و اینکه این روش محدودیت اپسیلون تا چه تعداد تابع هدف رو میتونه پاسخگو باشه؟
برای کد کردن بیش از سه تابع هدف از چه روشی استفاده کنم؟
خیلی ممنون
سلام
فرض کنید سه تابع هدف دارید و قرار است همه را ماکزیمم کنید
ابتدا ۳ بار باید مساله را جل کنید
۱-
max OF1
این مساله مقدار بیشینه of1 , نیز مقادیری برای of2,3 به شما می دهد
۲-
max OF۲
این مساله مقدار بیشینه of۲ , نیز مقادیری برای of۱,3 به شما می دهد
۳-
max OF۳
این مساله مقدار بیشینه of۳ , نیز مقادیری برای of2,۱ به شما می دهد
از این سه مساله شما بازه تغییرات هر سه تابع هدف را دارید
حالا دو حلقه باید تعریف کنید که حد پایین of1,2 را تغییر دهد و of3 را ماکزیمم کنید
راه خیلی موثری نیست اما راه دیگری برای بدست اوردن سطح پرتو نیست
بیشتر از ۳ تابع هدف امکانپذیر نیست
در صورت امکان در خصوص معادله I^2V^2=p^2-Q^2 میشه توضیح بدید ؟
ممنونمم آقای دکتر
فکر می کنم معادله
I^2V^2=P^2+Q^2 منظورتون باشه
معادله فوق محدب نیست
ضرب دو متغییر توان 2 دارید
معادله رو به صورت زیر در نظر بگیرید
S=IV
S^2=P^2+Q^2
مشکل اینجاست که ضرب v و I محدب نیست
و نمی توان آن را با QCP حل کرد باید با nlp حل کنید
خیلی ممنون از لطفتون_ فقط دراتباط با تقریب زدن ایم معادله با حدود مثلا 0.95 میشه راهنمایی کنید ؟
لطفا سوالتون رو واضح بپرسید
I^2V^2=P^2+Q^2
بجای حل کردن عبارت بالا میخوام تقریب بزنم،(عبارت رو جایی خوندن با عنوان تقریب زدن معادلات SOCP)
S=IV
S^2=P^2+Q^2
Q=P tanx
p tanx<=(sqrt(P^2+Q^2<=p tanx –
آیا بطور کلی میشه SOCP رو تقریب زد یا نه ؟
ممنون از لطفتون آقای دکتر..
سلام
سوالتون به گمز مربوط نمی شود
سلام آقای دکتر ،
در صورت امکان درباره معادلات SOCP در گمز و خطی کردن معادلات Norm 2 درصورت امکان توضیح دهید …ممنوونم
برای مثال
با سلام.خیلی ممنون از سایت خوبتون،همچنین از همکاری جناب آقای دکتر سرودی با گمزبوک بسیار خوشحالم.
جناب آقای دکتر سرودی،
ضمن عرض ادب و احترام،
بنده روی GEP کار می کنم.برای در نظر گرفتن عدم قطعیت توان بادی، چیزی نزدیک به 5000 سناریو برای توان بادی دارم که میخوام با استفاده از SCENRED اونها رو کاهش بدم. بعد از خوندن help گمز،متاسفانه نتونستم طرز استفاده SCENRED رو یادبگیرم.و کدم رو با سناریو های کاهش یافته مقاله بیسم ،دارم پیش میبرم. خواستم بگم که فایل آموزشی چیزی هست که بشه سریع طرز استفاده از این ابزارو یاد گرفت؟؟قبلا هم آقای محمودی گفته بودن که در حال تهیه یک ویدئوی آموزشی هستند که متاسفانه آماده نشده.امیدوارم که پاسخ امیدوار کننده ای از شما یا سایت گمزبوک شنیده بشه.چون فکر کنم ،کسایی که در استفاده ازSCENRED دچار مشکل هستند،افراد کمی نیستن. نکته دیگه اینکه، با توجه محدودیت زمانی که دارم(برای دفاع در این ترم تا اخر بهمن)،اگه بجای کاهش سناریو،از همین سناریوهای کاهش یافته مقاله بیسم استفاده کنم،تاثیر منفی روی نمره پایان نامه ام داره؟؟اگه داره، تاثیر قابل توجهی هست؟؟ممنون از لطف شما.
سلام
۱- برای کاهش سناریو می توانید از ضمیمه این مقاله استفاده کنید
https://researchrepository.ucd.ie/bitstream/10197/6202/1/R2-RPG.pdf
۲- در خصوص نمره باید از استاد راهنما و هیات داوران پایان نامه سوال کنید
سلام خدمت جناب دکتر سرودی و خیلی ممنونم بابت کتاب خوبتون
آیا در حل مسﺋله ی bi-level در نرم افزار گمز میشه قیدهای سطح پایین مسﺋله غیر خطی و غیر محدب باشند( به طور مثال رابطه ی جریان گاز طبیعی عبوری از خط)؟
هدف تبدیل کردن مسﺋله ی دوسطحی به تک سطحی نیست و قصد داریم با خود حل کننده ی نرم افزار گمز مسﺋله دوسطحی حل شود
سلام
GAMS قادر است مسایل دو سطجی را حل کند
https://www.gams.com/latest/emplib_ml/libhtml/emplib_bard511.html
در خصوص غیر محدب بودن قیود سطح پایین حتی در صورتی که مشکل تیوری نداشته باشد در عمل بسیار مشکل است
https://www.gams.com/latest/emplib_ml/libhtml/emplib_nlp2mcp.html
موفق باشید.
ببخشید تابع آلودگی و هزینه توابع هدف مورد نظر می باشند
سلام و خسته نباشید
میخام واسه پروژم چن تا شبکه برق رو که باهم تبادل توان دارند شبیه سازی کنم،و تابع توان و هزینه رو برای هر شبکه به طور جداگانه در نظر بگیرم(به عنوان توابع هدف)
اگه تعداد این توابع مثلا هفت هشت تا بشه
در نهایت حلش خیلی سخت میشه یا مثل مسئله ای با ۳تا تابع هدف حل میشه…
سلام
در حالت کلی حل مساله چند هدفه با بیشتر از ۳ تابع هدف سخت می باشد
مخصوصا برای رسم سطح پرتو دچار اشکال می شود مقاله زیر را م یتوانید مطالعه کنید
https://pdfs.semanticscholar.org/63dd/ea17dbecfc43042d6ddc15803824e35cfab9.pdf
نکته اول : شما می توانید آلودگی را به هزینه تبدیل کنید و با هزینه جمع نمایید
۲- اگر شما در مساله قصد دارید دیسپچ بهینه واحد ها را طوری تعیین کنید که هزینه شبکه ۱ را کمینه کنید این مساله به افزایش هزینه بقیه شبکه ها منجر می شود
چرا هزینه همه شبکه ها را با هم جمع نمی کنید ؟ (دفت کنید که شما به عنوان نهاد مرکزی در حال بهینه کردن همه واحد ها هستید و آنها را کنترل می کنید پس هزینه کل برای شما باید مهم باشد
خیلی ممنون
سلام آقای دکتر وقتتون بخیر
داخل کتاب شما یک سری توزیع اقتصادی بار انجام شده است و کد رو داخل کتابخانه گمز قرار دادید، ولی یکی از انها که مربوط به توزیع اقتصادی نیروگاه های آبی است در کتابخانه گمز قرار ندادید ، اگر امکانش هست لطف کنید و این کد را برای ما ارسال کنید.
بسیار سپاسگزارم از کتاب خوبتون
rezasabahi0@gmail.com