درباره نویسنده

98 دیدگاه

  1. شهاب

    سلام و خسته نباشید
    میخام واسه پروژم چن تا شبکه برق رو که باهم تبادل توان دارند شبیه سازی کنم،و تابع توان و هزینه رو برای هر شبکه به طور جداگانه در نظر بگیرم(به عنوان توابع هدف)
    اگه تعداد این توابع مثلا هفت هشت تا بشه
    در نهایت حلش خیلی سخت میشه یا مثل مسئله ای با ۳تا تابع هدف حل میشه…

    1. دکتر علیرضا سرودی

      سلام
      در حالت کلی حل مساله چند هدفه با بیشتر از ۳ تابع هدف سخت می باشد
      مخصوصا برای رسم سطح پرتو دچار اشکال می شود مقاله زیر را م یتوانید مطالعه کنید
      https://pdfs.semanticscholar.org/63dd/ea17dbecfc43042d6ddc15803824e35cfab9.pdf

      نکته اول :‌ شما می توانید آلودگی را به هزینه تبدیل کنید و با هزینه جمع نمایید

      ۲- اگر شما در مساله قصد دارید دیسپچ بهینه واحد ها را طوری تعیین کنید که هزینه شبکه ۱ را کمینه کنید این مساله به افزایش هزینه بقیه شبکه ها منجر می شود
      چرا هزینه همه شبکه ها را با هم جمع نمی کنید ؟‌ (دفت کنید که شما به عنوان نهاد مرکزی در حال بهینه کردن همه واحد ها هستید و آنها را کنترل می کنید پس هزینه کل برای شما باید مهم باشد

  2. شهاب

    ببخشید تابع آلودگی و هزینه توابع هدف مورد نظر می باشند

  3. محمد امین

    سلام خدمت جناب دکتر سرودی و خیلی ممنونم بابت کتاب خوبتون

    آیا در حل مسﺋله ی bi-level در نرم افزار گمز میشه قیدهای سطح پایین مسﺋله غیر خطی و غیر محدب باشند( به طور مثال رابطه ی جریان گاز طبیعی عبوری از خط)؟
    هدف تبدیل کردن مسﺋله ی دوسطحی به تک سطحی نیست و قصد داریم با خود حل کننده ی نرم افزار گمز مسﺋله دوسطحی حل شود

  4. مهدی

    با سلام.خیلی ممنون از سایت خوبتون،همچنین از همکاری جناب آقای دکتر سرودی با گمزبوک بسیار خوشحالم.
    جناب آقای دکتر سرودی،
    ضمن عرض ادب و احترام،
    بنده روی GEP کار می کنم.برای در نظر گرفتن عدم قطعیت توان بادی، چیزی نزدیک به ۵۰۰۰ سناریو برای توان بادی دارم که میخوام با استفاده از SCENRED اونها رو کاهش بدم. بعد از خوندن help گمز،متاسفانه نتونستم طرز استفاده SCENRED رو یادبگیرم.و کدم رو با سناریو های کاهش یافته مقاله بیسم ،دارم پیش میبرم. خواستم بگم که فایل آموزشی چیزی هست که بشه سریع طرز استفاده از این ابزارو یاد گرفت؟؟قبلا هم آقای محمودی گفته بودن که در حال تهیه یک ویدئوی آموزشی هستند که متاسفانه آماده نشده.امیدوارم که پاسخ امیدوار کننده ای از شما یا سایت گمزبوک شنیده بشه.چون فکر کنم ،کسایی که در استفاده ازSCENRED دچار مشکل هستند،افراد کمی نیستن. نکته دیگه اینکه، با توجه محدودیت زمانی که دارم(برای دفاع در این ترم تا اخر بهمن)،اگه بجای کاهش سناریو،از همین سناریوهای کاهش یافته مقاله بیسم استفاده کنم،تاثیر منفی روی نمره پایان نامه ام داره؟؟اگه داره، تاثیر قابل توجهی هست؟؟ممنون از لطف شما.

  5. معین

    سلام آقای دکتر ،
    در صورت امکان درباره معادلات SOCP در گمز‌ و خطی کردن معادلات Norm 2 درصورت امکان توضیح دهید …ممنوونم

    1. برای مثال

      Set       n / n1*n10 /;
      Parameter d(n), a(n), l(n), u(n);
      Scalar    b;
      
      d(n) = uniform(1,2);
      a(n) = uniform (10,50);
      l(n) = uniform(0.1,10);
      u(n) = l(n) + uniform(0,12-l(n));
      
      Variables x(n);
      x.l(n) = uniform(l(n), u(n));
      b      = sum(n, x.l(n)*a(n));
      
      Variables t(n), z(n), obj;
      Equations defobjc, defobj, e1, e2(n), coneqcp(n), coneperfect(n), conenlp(n);
      
      defobjc..          sum(n, d(n)*t(n)) =e= obj;
      defobj..           sum(n, d(n)/x(n)) =e= obj;
      e1..               sum(n, a(n)*x(n)) =l= b;
      coneqcp(n)..       t(n)*x(n) =g= 1;
      e2(n)..            z(n) =e= sqrt(2);
      coneperfect(n)..   2*x(n)*t(n) =g= sqr(z(n));
      
      Model cqcp     /defobjc, e1, coneqcp/;
      Model cperfect /defobjc, e1, e2, coneperfect/;
      Model orig     /defobj, e1/;
      
      t.lo(n) = 0;
      x.lo(n) = l(n);
      x.up(n) = u(n);
      
      Option qcp=cplexd;
      Solve cqcp min obj using qcp;
      Option qcp=mosek;
      Solve cperfect min obj using qcp;
      Solve orig min obj using nlp;
      
  6. معین

    در صورت امکان در خصوص معادله I^2V^2=p^2-Q^2 میشه توضیح بدید ؟
    ممنونمم آقای دکتر

    1. فکر می کنم معادله
      I^2V^2=P^2+Q^2 منظورتون باشه
      معادله فوق محدب نیست
      ضرب دو متغییر توان ۲ دارید
      معادله رو به صورت زیر در نظر بگیرید
      S=IV
      S^2=P^2+Q^2

      مشکل اینجاست که ضرب v و I محدب نیست
      و نمی توان آن را با QCP حل کرد باید با nlp حل کنید

      1. معین

        خیلی ممنون از لطفتون_ فقط دراتباط با تقریب زدن ایم معادله با حدود مثلا ۰٫۹۵ میشه راهنمایی کنید ؟

        1. معین

          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 رو تقریب زد یا نه ؟
          ممنون از لطفتون آقای دکتر..

  7. شهاب

    سلام آقای دکتر
    ممنون بابت سایت و کتاب خوبتون
    من یه مدل سه هدفه رو با روش محدودیت اپسیلون دارم کدمیکنم.
    طبق مثال کتاب خودتون دو هدفش رو انجام دادم
    واسه تبدیل به سه تابع هدف مشکل دارم،آیا فایلی مثالی هست که بتونم سه تابع هدف رو طبق اون انجام بدم؟توضیحاتش رو خوندم اما بلد نیستم کدش کنم
    ممنون میشم راهنمایی کنید.
    و اینکه این روش محدودیت اپسیلون تا چه تعداد تابع هدف رو میتونه پاسخگو باشه؟
    برای کد کردن بیش از سه تابع هدف از چه روشی استفاده کنم؟
    خیلی ممنون

    1. سلام
      فرض کنید سه تابع هدف دارید و قرار است همه را ماکزیمم کنید
      ابتدا ۳ بار باید مساله را جل کنید
      ۱-
      max OF1
      این مساله مقدار بیشینه of1 , نیز مقادیری برای of2,3 به شما می دهد
      ۲-
      max OF۲
      این مساله مقدار بیشینه of۲ , نیز مقادیری برای of۱,۳ به شما می دهد
      ۳-
      max OF۳
      این مساله مقدار بیشینه of۳ , نیز مقادیری برای of2,۱ به شما می دهد

      از این سه مساله شما بازه تغییرات هر سه تابع هدف را دارید

      حالا دو حلقه باید تعریف کنید که حد پایین of1,2 را تغییر دهد و of3 را ماکزیمم کنید

      راه خیلی موثری نیست اما راه دیگری برای بدست اوردن سطح پرتو نیست
      بیشتر از ۳ تابع هدف امکانپذیر نیست

  8. Z.pourahmad

    سلام
    ببخشید ضرایب تابع لاگرانژ که در بهینه سازی در گمز اجرا می شود را چطور می توان از نتایج نهایی پیدا کرد ؟
    برنامه حداقل سازی هزینه برای پیدا کردن تراکم خطوط دارم و به دنبال ضریب لاندا که در تابع بهینه سازی هست ،،هستم ( منظور از ضریب لاندا ، ضریب قید در تابع لاگرانژ است )
    از توجه شما ممنونم

  9. نیما

    سلام جناب دکتر سرودی
    ممنون از وقتی که در اختیار ما قرار میدید ،در صورت امکان درباره مدل سازی عدم قطعیت منابع بادی در گمز‌ میشه توضیح مختصری بفرمایید .
    ممنون میشم …

  10. امین

    سلام جناب سرودی ،
    جسارتا میخواستم بدونم اگر یه بهینه سازی‌ Bi-level داشته باشیم ،‌ بطوریکه سطح اول برنامه ریزی و سطح دوم بهره برداری باشد ،‌و در قیود ارتباط دهنده دوسطح یک قید تپ چنچر بصورت (Dommy Binary)
    داشته باشیم ، الزاما مسئله رو سه سطحی میکنه ؟ مثلا بجای روش CCG باید از Nested CCG استفاده کنیم یا نه ؟ نیاز به دوگان قید باینری هست ؟
    ممنون میشم توضیح بدید – و ممنون از لطف شما

    1. در مسایل bilevel همیشه متغییر ارتباط دهنده دوسطح داریم
      چرا می فرمایید ۳ سطحی ؟
      در حالت کلی باید شرایط kkt را نوشته و تک سطجی کنید
      جال ممکن است برای سهولت حل از روشهای تکراری مثل بندرز استفاده کنید (مخصوصا برای متغییر های باینری)

  11. Narcis

    با سلام

    آقای دکتر در صورت امکان، در مورد قید حفظ پیوستگی و شعاعی بودن شبکه توزیع بعد از بازآریی به غیر از استفاده از گراف و ماتریس در نرم افزار گمز راهنمایی بفرمایید.

  12. alireza

    سلام آقای دکتر
    امکان داره تو سایت یه آموزش در مورد پیاده سازی روش لاگرانژ برای آزاد سازی قیود تو مسائل بهینه سازی بذارید؟ یا یه مرجه خوب برای این موضوع پیشنهاد بدید؟-مثلا تو مسائل bi-level-
    کتاب تون بسیار عالی تون رو مطالعه کرده ام اما در مورد روش لاگرانژ مطلب زیادی نیست
    تشکر

  13. علی

    سلام
    بهینه سازی سه هدفه به روش اپسیلون انجام دادم،الان انتخاب جواب بهینه به عهده تصمیم گیرندس یا مثل دو هدفه فرمول داره؟

  14. معین

    سلام آقای دکتر
    در ارتباط با کد نویسی BIG_M در گمز و روش CCG میشه راهنمایی کنید ؟
    ممنون از لطفتون

  15. معین

    سلام جناب دکتر سروردی،
    اگر در یک مساله Bi-level که بصورت برنامه ریزی و بهره برداری است، در قسمت قیود بهره برداری قید باینری داشته باشیم، و نیاز به تئوری دوگان داشته باشیم از قیود بهره برداری، از قیود باینری چگونه میتوان دوگان گرفت ؟ آیا امکان هست چنین چیزی ؟
    خیلی خیلی ممنون از وقتی که در اختیار ما دانشجوها قرار میدید ..

  16. شهاب

    سلام و وقت‌بخیر
    مدل سازی سه هدفه با روش محدودیت اپسیلون انجام دادم،داخل جواب‌ها،جواب تکراری هم وجود داره و همچنین مقادیر توابع هیچ ترتیب صعودی یا نزولی وجود ندارند.
    آیا باید همواره جواب ها باید دارای ترتیب صعودی یا نزولی و بدون تکرار باشند؟ یا این قضیه برقرار نیست اصلا

  17. محمدرضا

    سلام جناب دکتر
    در صورت امکان درباره بهینه سازی با روش Distributed Robust Optimization مرجعی برای یادگیری یا کددهی در گمز لطف میکنید ؟
    ممنونم جناب دکتر

  18. مهدی

    سلام آقای دکتر
    وقتتون به خیر،
    اگر بخوام در گمز یا بطور کلی،دو یا چند شبکه ۳۳ باسه رو به هم وصل کنم و یک گرید در نظر بگیرم، چه کار باید کنم ؟
    میشه راهنمایی کنید .
    خیلی ممنون از لطف شما

  19. احمد

    با سلام خدمت آقای دکتر سرودی و تشکر بابت وقتی که به پاسخ ها اختصاص می دهید.
    در باره برنامه ریزی تصادفی (stochastic programming) سوال دارم.
    هنگام سناریوسازی با استفاده از شبیه سازی مونت کارلو از مقادیر پیش بینی شده (forcasted)، به چه ورودی هایی نیاز داریم؟
    در اینصورت لازم است تابع توزیع نرمال را از بدست بیاوریم؟
    برای مثال، تولید سناریو (scenario generation) برای قیمت برق به چه صورت است؟
    بابت وقتی که می گذارید پیشاپیش ممنون شما هستم.

    1. سلام
      شما با استفاده از داده گذشته باید بتوانید تابع توزیع احتمالی برای داده (مثلا قیمت بازار) خود فیت کنید
      زمانی که شما تابع توزیع را داشه باشید تولید سناریو آسان خواهد بود
      می توانید با آن تابع توزیع، عدد تصادفی تولید کنید

  20. سارا

    با سلام
    من یه مساله 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.
    و اینکه دو تا متغییر باینری هم در مدل سازی دارم منتهی تمام خروجی های این متغییر ها باینری نیست؟
    چیکار کنم؟ آیا مدلسازی و سالور ام غلط است؟

    1. بهترین راه اینه که در لول پایین شرایط kkt رو بنویسید
      مساله رو تک سطحی کنید (که البته غیرخطی میشه)
      و اون مساله MINLP ایجاد شده رو حل کنید
      این راهی است که به ذهن من می رسه

  21. سارا

    ضمن تشکر از جناب آقای دکتر سرودی بابت پاسخ دهی به سوال مطرح شده.
    من یک سوال دیگری داشتم در رابطه با مساله بای لول
    با فرض اینکه یک مساله داریم که میخواهیم در لول بالا تابعی به شکل ” ax+by ” را min
    و در لول پایین تابع ” cx+dy ” را min کنیم
    در صورت حذف شدن یکی از ترم های لول بالا مثلا ” by ”
    آیا مساله از حالت بای لول خارج شده و یک سطحی می شود؟
    با توجه به اینکه x و y متغییرهای تصمیم ما در هر دو لول هستند و بین این دو سطح رد و بدل می شود؟

  22. مهدی

    سلام آقای دکتر سرودی
    ممنون بابت وقتی که در اینجا می گذارید و همچنین بابت کتاب خوبتون
    برای حل مسئله پخش بار AC بمنظور مینیمم کردن هزینه های تولید برای یک سیستم ۳ شینه با یک ژنراتور (در شین ۳) و دو بار (در شین ۲ و ۳) کد زیر رو نوشتم ولی جواب شدنی نمیشه و علت آن این است که توان عبوری (PL) بین دو شین صفر است. لطفا ایراد کد و علت صفر شدن PL (توان عبوری بین خطوط) را بفرمایید.
    با تشکر

    ایراداتی که در جواب این کد می آید بشرح زیر است:
    ۱) 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;

  23. امیر

    با سلام،
    من میخوام تقاضای حرارتی ۱۰خونه رو برای بازه۴۸ تایی تعریف کنم؛مثلا بگم تقاضای حرارتی خونه اول در بازه اول ۱٫۸، تقاضای حرارتی خونه دوم تو بازه اول ۱٫۴ و تاآخر.
    [css]
    Table E(j,t,*)
    Dh
    j1.t1 1.8
    j2.t1 1.4
    j3.t1 1
    j4.t1 2
    [css]
    به این شکل بنویسم کد طولانی میشه راهی برای خلاصه کردن وجود داره؟

  24. سارا

    سلام جناب دکتر سرودی ارجمند
    برنامه من یک مدل دو سطحی که از روش KKT و دوگان تک سطحی و خطی شده و نتیجه MIP شده رو با solver ceplx حل کردم
    یک بار که قیود مساله م کمتر **** MODEL STATUS 8 Integer Solution این وضعیت رو نشون میده
    یک بار هم که یه سری قیود به مساله اضافه میشه **** MODEL STATUS 1 Optimal این وضعیت نمایش داده میشه
    کلا مدل تک سطحی و خطی شده MIP هست در هر دو حالت وضعیت مدل با این توصیفات درست هست در ر دو حالت؟

    1. status 1 یعنی جواب بهینه گلوبال پیدا شده
      status ۸ یعنی جواب feasible پیدا شده (می توانید با دستور optcr=0) از گمز بخواهید به جستجو برای جواب گلوبال ادامه دهد

  25. سعید

    سلام استاد سرودی ارجمند.

    من فارغ التحصیل ارشد برق قدرت دانشگاه آزادم.
    وحدود سه سال در زمینه بهبود الگوریتم های فرا ابتکاری در سیستم های قدرت نظیر جایابی جبرانسازها، بازآرایی، ED و… کار کردم. همچنین الگوریتم PSO را بهبود دادم و مساله ED رو باهاش حل کردم و در ژورنال Applied soft computing ریوایز خورده.
    تمامی موارد بالا رو با کدنویسی در نرم افزار متلب انجام دادم.

    جدیدا که مقالات اساتید رو در ژورنال های معتبر چک میکنم، میبینم اکثرا بر اساس ریاضی هستن و نظیر سالورهایی مثل سی پلکس حل شده اند. از طرفی اخیرا با یک استاد در جهت اپلای صحبت کردم گفتن که اولویت با کسانی هست که گمز کار میکنن.

    خدمت شما عرض کنم من الان متوجه شدم که چه اشتباهی رو مرتکب شدم و گمز کار نکردم و الان چنتا سوال دارم ممنون میشم راهنمایی کنید.

    ۱- آیا تصمیمی که گرفتم در جهت کوچ از فراابتکاری و متلب به سوی گمز درست هست؟
    ۲-آیا برای من که بیس ریاضی قوی ندادم، یادگیری گمز راحته؟ چونکه میخوام دکتری اپلای کنم قطعا باید مقالات خوبی را انجام بدم و خواستم مطمئن بشم که با توجه به سطح ضعیف ریاضیم در اثبات فرمول و… به مشکل برنمیخورم.

    ۳-گمز رو سریع میشه یادگرفت؟ چه رفرنسی را پیشنهاد میدین که خیلی کاربردی آموزش داده باشه؟

    ۴-اگر پیشنهادی دارید ممنون میشم راهنمایی کنید با توجه به توضیحاتم.

    پیشاپیش از محبتت ممنونم.

    1. ۱- بلی درست است
      ۲-هیچ کاری راحت نیست اگر دنبال کار راحت هستید راحت ترین کار هیچ کاری نکردن است
      ۳-بلی می شود سریع یاد گرفت
      یک مثال را با گمز حل کنید (هر مثالی ) یاد می گیرید
      ۴-توصیه می کنم کار کنید

  26. سارا

    با سلام من یک سوالی داشتم در رابطه با شرایط kkt…
    بعد از نوشتن قیود kkt و قیود Complementary slackness آیا حتما باید این قیود توسط روشهایی مثل Big-M خطی شود؟
    آیا نمیشود با MINLP حل کرد؟

  27. معین

    سلام آقای دکتر_ وقتتون به خیر
    یه مدل ۳۳ باسه دارم که معادلات پخش بار Ac رو بدون خطی کردن و با سالور MIQCP=CPLEX حل میکنم و جواب میگیرم، ولی وقتی سیستم ۱۱۸ باسه رو وارد میکنم به مشکل INTEGER INFEASIBLE برمیخورم_ آیا نیاز به خطی کردن قید SOCP هست ؟

    1. اگر کد شما درست باشد به سیستم نباید وابسته باشد
      شرایط اولیه را چک کنید
      چرا متغییر باینری دارید ؟
      قیودی را که در آنها متغییر باینری وجود دارد را چک کنید

      1. معین

        در ۱۱۸ باسه این جواب رو میده:
        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;
        و همه جواب ها داخل ۱۱۸ باسه صفر میشوند ولی ۳۳ باس به جواب کامل و بهینه میرسه .بهینه سازی بصورت یک مدل bi-level بوده و یکسری متغیر ارتباط دهنده دو سطح(operation & planning) دارم که از نوع اینتیجر هم دارم…مشکل از لایسنس های کرک شده گمزی که در ایران استفاده میکنیم نیست احیانا؟
        ممنون از لطفتون آقای دکتر .

        1. اصولا با تغییر کیس نباید مشکلی ایجاد شود
          باید تمامی قید ها را تک تک چک کنید و ببینید ایراد از کجاست
          بدون شک برای کیس جدید فرضیاتی داشته ایذ که در کیس قبلی وجود نداشته اند
          مثلا vbase sbase حدود خطوط و ….

  28. یسنا

    با عرض سلام جناب دکتر سرودی
    در یک سیستم IEEE 118 باسه، دو مداره بودن خطوط را در جدول Branch(bus,node,*) ایراد میگیرد. حتی در صورتیکه ایندکسی مانند L برای خط قبل از Bus,node میشود بصورت : L,Bus,node,*)) ، بازهم ایراد میگیرد. برای رفع ایراد راه حلی وجود دارد یا باید از فرمول خطوط دومداره آنها را یکی کرد ؟
    ممنون از لطف شما

  29. یسنا

    ممنون از لطف شما ،
    ارور ۱۴۹ گمز رو بهم میده ؛
    من داخل branch و parameter ،اندیس L رو تعریف کردم _ولی بازم ارور میده بهم ،این اندیس L باید دقیقا کجا اضافه بشه ؟ داخل Branch ? Conex ؟ Pij ؟

  30. امیر

    با سلام ؛
    من این کد رو مینویسم
    ;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 نیز یک متغیر باینری می‌باشد. باتشکر

    1. محمودی

      سلام
      این خطا رو تو بخش خطاهای گمز مورد بررسی قرار دادیم.
      وقتی همچین اروری میبینید، مفهوم اینه که با توجه به فرمول، شرط ها و داده های وارد شده در این معادله، به هیچ وجه امکان نداره که مسئله شدنی باشه. دقیق تر بگم. همه محدودیت ها و معادلات دیگه رو هم اگه بندازیم دور، همین یه معادله کافیه که مسئله نشدنی بشه.
      نکته مهم تر اینه که این خطا قبل از حل شدن مسئله توسط سالور (حتی قبل از تلاش برای حل کردن) به کاربر نشون داده میشه!
      نتیجتاً معادله میگه که: امکان ندارد سیگمای نوشته شده برابر با یک شود!

  31. امیر

    با تشکر از پاسخگوییتون،
    من بخش خطاهای گمز،قسمت تلرانس متغیرهای Integer رو مطالعه کردم و در برنامه بکار بردم اما مشکل حل نشد. این معادله هم در مقاله داده شده است به این صورت که سیگمای w در بازهtهای عضو Ts1 تا (Tf1-p(i برابر با یک باشه. من میدونم که اشکال کار من اینه که قسمت سمت راست با چپ برابر نیس اما نحوه رفع این مشکل و اعمال معادله به شکل درست گمز رو نمیدونم لطفا مرا در نوشتن این کد در گمز راهنمایی نمایید.

    1. شما یک سیگما بنویسید روی t
      سپس با دستور $ به گمز بگید t در چه بازه ای باشد
      نحوه نوشتن این دستور بارها در این سایت توضیح داده شده است

  32. مجتبی

    با سلام
    من یک مساله بای لول دارم
    که در قیود سطح پایین (follower) آن متغییرهای باینری دارم
    آیا روش kkt و خطی سازی قیود complementary slackness، برای حل این نوع مساله مناسب است؟

  33. سارا

    سلام جناب دکتر سرودی من مدل مساله ام (که یه مدل دوسطحی و با سالور 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’));
    وقتی در بالاتر حد مین و ماکس ولتاژ رو برمیدارم مساله جواب میده هرچند تابع هدف که سود هست منفی بدست میاد! اما وقتی محدودیت های ولتاژ در مساله هست کلا جواب نمیده!!!
    ممنون میشوم راهنمایی کنید
    با تشکر از سایت خوبتون

    1. وقتی تابغ سود منفی میشه باید ببینید علت چیه
      ایا ولتاژ ها ازحدود بیرون میزنه ؟
      بار شبکه رو کم کنید چک کنید مجدد

  34. سارا

    ممنون مشکل حل شد و به خاطر پریونیت نکرد مقادیر شبکه بود که پخش بارها مشکل داشت.
    یک سوال دیگر برای یک equation میخواهم همزمان دو شرط اعمل کنم در گوگل متاسفانه جوابی نیافتم
    $(ord(t) < 24)
    $MG_Bus(j,i)
    برای همزمان وارد کردن این دو شرط در یک خط قبل از دو نقطه باید چیکار کنم؟

    1. خیلی ساده

      sum(t , x(t))
      sum(t$( ord(t) < 10) , x(t))
      sum(t$( ord(t) > 10) , x(t))
      sum(t$( ord(t) < 10 and ord(t) > 2) , x(t))
      sum(t$( condition1 and condition2) , x(t))
      sum(t$( condition1 or condition2) , x(t))
      
  35. مهدی

    با سلام.بنده یک مدل minlp دارم که با سالور dicopt اونو حل میکنم.هدف مینیمم کردن هزینه احداث و بهره برداری باهم می باشد.وقتی که Run میگیرم،متغیرهای باینری و اینتیجرم اعدادی بجز اعداد صحیح هم میگیرند.(اعشاری).مسئله رو خیلی بررسی کردم اما متاسفانه به جوابی نرسیدم.ممنون میشم راهنمایی کنید.با تشکر.

    1. از روی پیغام های سالور چک کنید ببینید اصلا حل شده یا نه
      بعضی موارد به دلیلی infeasible شدن جواب نامربوط میدهد

      1. مهدی

        سالور استاتوس که نرمال کامپلیشن هست و مدل استاتوس اینتیجر سولوشن شده ولی خب مقدار تابع هدفم منفی بدست اومده.

        1. محمودی

          سلام
          option های زیر رو به مدل اضافه کنین اول. نتیجه رو مجددا اعلام کنین.

  36. مهدی

    آقای محمودی با عرض معذرت، فکر کنم داخل پاسخ تون دستورات رو ننوشتین.چون چیزی برای من نمایش داده نمیشه.ممنون از لطف تون

    1. مهدی

      با سلام و عرض پوزش فراوان،آقای محمودی لطف میکنید مجددا آپشن هایی که مد نظرتون بود رو ارسال کنید. ممنون میشم.

    2. محمودی

      بله عذرخواهی میکنم.

      option optcr=0,optca=0,intvarup=0
      

      ممکنه مشکل از اینها هم نباشه. فقط دارم تست میکنم کار شما رو. نسخه ۲۴٫۷ رو نصب کنین مثلا.

      1. مهدی

        سلام. آپشن intvarup=0 رو به کدم اضافه کردم.جواب نرمال و بصورت اینتیجر سولوشن هست.تابع هدفم قبلا منفی بود الان مثبت شده.ولی نتایج خروجیم درست و منطقی نیست.این دستور که اضافه کردم در عمل چه مفهومی داره؟الان یعنی کدم درسته یا غلط؟ممنون از وقتی که میذارین.با تشکر فروان.

        با درنظر گرفتن این آپشن، یه سوال هم از آقای دکتر سرودی داشتم.هدف مدلم مینیمم کردن هزینه احداث و بهره برداری هست.مقدار voll=1000$/mwh و هزینه احداث واحدهای کاندیدم بین ۴۵۰۰۰ تا ۶۵۰۰۰ $/MW هست.
        به ازای voll=1000، هیچ احداثی اتفاق نمیوفته.ولی در بعضی سناریوها که واحد حرارتی باید تولید میکرده،بجاش حذف بار داده.و در بعضی سناریو ها تولید داشته. توان بادی در اکثر سناریوهامو جذب کرده.قید های رمپ و حد خطوط هم مشکلی ایجاد نمیکنند.در کل حذف بار زیادی داشته.در صورتی که میتونست حرارتی تولید کنه.
        در حالت دوم برای اینکه گمز احداثو ببینه، مقدار voll رو به ۳۰۰۰۰۰ تغییر دادم.در این حالت احداث دیده شد ولی اصلا بهینه نیست.روی همه ی باس ها احداث کرده و بیشتر وظیفه بهره برداری رو این واحدهای جدید بعهده گرفتند.واحدهایی که هزینه بهره برداری شون از ۱۵۰۰۰تا۲۵۰۰۰ $/mwh هست.
        تا جایی هم که بررسی کردم مدلم اشتباهی نداره.ممنون میشم راهنمایی کنید.از وقتی که میذارین واقعا سپاسگزارم.با تشکر بی نهایت.

        1. ببینید شما در مساله بهره برداری باید در نظر داشته باشید که مدت زمان برنامه ریزی چقدره
          برای بازه کوتاه احداث عملا بی فایده است
          شما باید بازه برنامه ریزی رو افزایش بدید

  37. مهدی

    مسئله من plannig هست که درونش uc رو دیدم.واسه اینکه زودتر جواب بگیرم مدت زمان پلنینگ رو ۳ ساله در نظر گرفتم.که بعدا ۵ سال در نظر میگیرم.اون شرایطی که توضیح دادم متاسفانه برقرار هست. امروز همینجور دستی و فقط صرفا جهت تست، به گمز گفتم که تمام نیروگاه های حرارتیم برای تمامی سناریوهام در ساعت ۱ (از ۲۴ ساعت) و برای هر سه سال، ۳۰ مگاوات تولید کنند.p(year,’t1′,s).fx=30;
    با این دست کاری که امروز انجام دادم ، تقریبا جوابم خیلی قابل قبول بود.فقط دوتا از نیروگاه های کاندید احداث کرد و نیروگاه های موجودم مشارکت خوبی داشتند.در کل همه چی ایده ال به نظر میرسید.اما وقتی که فرضمو صرفنظر کردم مشکل همچنان پا برجاست.

  38. سارا

    سلام جناب دکتر سرودی
    من به مدل دوسطحی ایم که کاملا درست جواب میداد و با سالور MIP حل میشد شبکه ۳۳ باسه اضافه کردم
    از انجایی که معادلات پخش بار را به صورت کوادراتیک در مدل قرار دادم با سالور RMIQCP سعی کردم مدل را حل کنم
    مشکلی که وجود دارد با حل مدل اصلا معادلات پخش بار در مدل حل نمیشود و در قسمت equation list
    —- Power_flowa1 =E=

    NONE

    —- Power_flowa2 =E=

    NONE

    —- Power_flowa3 =E=

    NONE

    —- Power_flowa4 =E=

    NONE
    جواب ها به این صورت است
    آیا میتوانم کد برنامه را برای شما ایمیل کنم؟
    مشکل از کجا میتواند باشد؟!
    با تشکر

    1. محمودی

      سلام
      مدل شما Miqcp هست به نظرم. نه rmiqcp. حالت دوم فقط وقتی استفاده میشه که بخواین آزادسازی انجام بدید. ضمنا این این eq list که دادید ادرس مناسبی نیست.

  39. سارا

    سلام جناب دکتر سرودی
    علت منفی شدن تابع هدف در صورتی که قیود پخش بار را به مدل اضافه میکنم چه میتواند باشد؟
    قبل از قیود پخش بار مدل کاملا درست جواب میداد

  40. احمد

    سلام آقای دکتر سرودی
    برنامه ی گمز برای حل سناریو نوشتم. جمله تابع هدف ارور می دهد.
    Solve problem using MIP minimizing z(s);
    چه باید بکنم؟ چون هدف اینه که ۱۰ عدد تابع هدف به ازای هر سناریو داشته باشم.

  41. معین

    سلام جناب دکتر،وقتتون به خیر
    در صورت امکان میخواستم بدونم چه تفاوتی میان بهینه سازی Distributed Robust Optimization و
    Distributional Robust Optimization هست ؟ آیا هردو یک مفهوم رو میرسونن یا تفاوت بین این دو وجود داره ؟
    ممنون از لطف شما.

  42. سینا

    سلام جناب دکتر
    مدل من یک ارور دارد
    equation infeasible due to rhs value
    که معادله بالانسم هست
    باید چه چیزاهایی رو بررسی کنم؟ کلا معادله اشتباه نوشته شده!

دیدگاهی دارید؟