آموزش GAMS – قسمت ۱۶ : تحلیل حساسیت در GAMS

برای شروع یادگیری همین حالا تماس بگیرید ...

در قسمت‌های قبلی مجموعه آموزشی GAMS سایت بهینه‌یار، با مدل‌سازی مسائل چندمحصولی در GAMS IDE آشنا شدیم. حالا در قسمت هجدهم، به سراغ تحلیل حساسیت می‌رویم. تحلیل حساسیت به شما کمک می‌کند بفهمید تغییر در داده‌ها (مثل هزینه یا تقاضا) چه تأثیری روی نتایج مدل (مثل هزینه کل یا مقدار حمل) دارد. این آموزش برای مبتدیان طراحی شده و با یک مثال عملی در GAMS IDE، نحوه انجام تحلیل حساسیت را یاد می‌گیرید. بیایید شروع کنیم!

آخرین اخبار مهندسی صنایع و مدیریت

پایان نامه ارشد زنجیره تامین
انجام پایان‌نامه مهندسی صنایع ارشد در حوزه زنجیره تأمین؛ یک راهنمای جامع و تخصصی برای دانشجویان
زمان مطالعه: 5 دقیقه
استخراج مقاله از پایان نامه مهندسی صنایع
آموزش استخراج مقاله از پایان‌نامه مهندسی صنایع | راهنمای تخصصی برای دانشجویان صنایع
قیمت پایان نامه مهندسی صنایع
هزینه انجام پایان نامه مهندسی صنایع در سال ۱۴۰۴
زمان مطالعه: 5 دقیقه
انتخاب موضوع پایان نامه
موضوعات پایان‌نامه مهندسی صنایع ۱۴۰۴ + ۵۰ موضوع جدید و قابل استخراج مقاله ISI
زمان مطالعه: 5 دقیقه
انتخاب موضوع پایان نامه مهندسی صنایع
انتخاب موضوع پایان نامه مهندسی صنایع از صفر تا صد، راهنمای کامل برای دانشجویان
مصاحبه استخدام مهندسی صنایع
مصاحبه استخدام مهندسی صنایع، ۴ سرفصل مهم و هرآنچه که باید بدانید
زمان مطالعه: 3 دقیقه

تحلیل حساسیت چیست؟

تحلیل حساسیت بررسی تأثیر تغییرات در پارامترهای مدل (مثل هزینه یا تقاضا) روی نتایج بهینه (مثل متغیرها یا تابع هدف) است. در GAMS، این کار با تغییر پارامترها و اجرای مجدد مدل یا بررسی مقادیر حاشیه‌ای (Marginal Values) انجام می‌شود.

چرا تحلیل حساسیت مهم است؟

  • درک تأثیرات: نشان می‌دهد کدام پارامترها بیشترین تأثیر را دارند.
  • تصمیم‌گیری بهتر: به مدیران کمک می‌کند سناریوهای مختلف را ارزیابی کنند.
  • رفع مشکلات: کمک می‌کند محدودیت‌های بحرانی (مثل ظرفیت کم) را شناسایی کنید.

ابزارهای تحلیل حساسیت در GAMS

  • مقادیر حاشیه‌ای (.m): نشان‌دهنده حساسیت محدودیت‌ها (مثل تقاضا یا ظرفیت).
  • تغییر دستی پارامترها: تغییر داده‌ها (مثل هزینه یا تقاضا) و اجرای مجدد مدل.
  • سناریوهای مختلف: اجرای مدل با چند مجموعه داده.

تحلیل حساسیت در GAMS IDE

برای تحلیل حساسیت، از مدل حمل‌ونقل چندمحصولی استفاده می‌کنیم و تأثیر تغییر تقاضا را بررسی می‌کنیم. داده‌ها از اکسل وارد می‌شوند.

مرحله ۱: ساختار فایل اکسل

فایل اکسل (data_multi.xlsx) همانند قسمت قبل:

  • Sheet1 (هزینه‌ها):
  • Sheet2 (تقاضاها):

فایل را در پوشه پروژه GAMS IDE (مثل C:\GAMS\workdir) ذخیره کنید.

مرحله ۲: تبدیل اکسل به GDX

  1. فایل GAMS جدید (convert_multi.gms) در GAMS
* تبدیل اکسل به GDX
Sets
  i "شهرها"
  j "محصولات";
Parameters
  c(i,j) "هزینه حمل"
  d(i,j) "تقاضا";
$call gdxxrw data_multi.xlsx par=c rng=Sheet1!A1:C7 par=d rng=Sheet2!A1:C7
$gdxout data_multi.gdx
$unload i j c d
$gdxout
  1. با کلید F9 اجرا کنید تا data_multi.gdx ایجاد شود.

مرحله ۳: کد GAMS برای تحلیل حساسیت

کد زیر مدل را اجرا و مقادیر حاشیه‌ای را نمایش می‌دهد. همچنین، تقاضا را تغییر می‌دهیم تا حساسیت را بررسی کنیم:

* مدل حمل‌ونقل چندمحصولی با تحلیل حساسیت در GAMS IDE
$Ontext
این مدل هزینه حمل را کمینه می‌کند و حساسیت تقاضا را بررسی می‌کند.
$Offtext

* تعریف مجموعه‌ها
Sets
  i "شهرهای مقصد"
  j "محصولات";

* تعریف پارامترها
Parameters
  c(i,j) "هزینه حمل (هزار تومان)"
  d(i,j) "تقاضای هر شهر و محصول (واحد)"
  d_new(i,j) "تقاضای جدید برای تحلیل حساسیت"
  s "ظرفیت انبار (واحد)";

* وارد کردن داده‌ها از فایل GDX
$gdxin data_multi.gdx
$load i j c d
$gdxin
s = 1500;

* تنظیم تقاضای جدید (افزایش تقاضای Product1 در تهران)
d_new(i,j) = d(i,j);
d_new('Tehran','Product1') = 250;  * افزایش تقاضا از ۲۰۰ به ۲۵۰

* تعریف متغیرها
Variables
  x(i,j) "مقدار حمل هر محصول به هر شهر (واحد)"
  z "هزینه کل (هزار تومان)";
Positive Variable x;

* تعریف معادلات
Equations
  Cost "هزینه کل"
  Demand(i,j) "تقاضای هر شهر و محصول"
  Supply "محدودیت ظرفیت انبار";

Cost.. z =e= sum((i,j), c(i,j)*x(i,j));
Demand(i,j).. x(i,j) =g= d_new(i,j);
Supply.. sum((i,j), x(i,j)) =l= s;

* تعریف و حل مدل
Model TransportMulti /all/;
Solve TransportMulti using LP minimizing z;

* نمایش نتایج و مقادیر حاشیه‌ای
Display x.l, z.l, Demand.m, Supply.m;

توضیح کد

  • داده‌ها:
    • $load i j c d: مجموعه‌ها و پارامترها از data_multi.gdx.
    • d_new(i,j): تقاضای جدید برای تحلیل حساسیت (تقاضای Product1 در تهران از ۲۰۰ به ۲۵۰ افزایش یافته).
  • معادلات:
    • Cost: هزینه کل (z) برابر مجموع هزینه‌های حمل.
    • Demand: مقدار حمل (x(i,j)) حداقل برابر تقاضای جدید (d_new).
    • Supply: مجموع حمل حداکثر برابر ظرفیت انبار (s).
  • تحلیل حساسیت:
    • Demand.m: مقادیر حاشیه‌ای محدودیت‌های تقاضا (حساسیت به تغییر تقاضا).
    • Supply.m: مقدار حاشیه‌ای محدودیت ظرفیت (حساسیت به ظرفیت انبار).
  • اجرا در GAMS IDE:
    • فایل را ذخیره کنید (مثل transport_sensitivity.gms).
    • با کلید F9 اجرا کنید.
    • خروجی در پنجره Output یا فایل .lst نمایش داده می‌شود.

خروجی نمونه

در فایل .lst یا پنجره Output:

x.l(Tehran,Product1)   250.000
x.l(Tehran,Product2)   150.000
x.l(Shiraz,Product1)   300.000
x.l(Shiraz,Product2)   100.000
x.l(Isfahan,Product1)  250.000
x.l(Isfahan,Product2)  120.000
z.l                   32450.000

Demand.m(Tehran,Product1)   50.000
Demand.m(Tehran,Product2)   60.000
...
Supply.m                    0.000
  • توضیح:
    • هزینه کل به ۳۲۴۵۰ هزار تومان افزایش یافت (به دلیل افزایش تقاضای Product1 در تهران).
    • Demand.m(Tehran,Product1) = 50: افزایش یک واحد تقاضای Product1 در تهران هزینه را ۵۰ هزار تومان افزایش می‌دهد.
    • Supply.m = 0: ظرفیت انبار هنوز استفاده‌نشده است (محدودیت غیرفعال).

نکات مهم در GAMS IDE

  • مقادیر حاشیه‌ای: Demand.m و Supply.m نشان‌دهنده حساسیت محدودیت‌ها هستند.
  • تغییر پارامترها: با تغییر d_new می‌توانید سناریوهای مختلف را تست کنید.
  • خطاها: اگر مدل Infeasible شود (مثلاً تقاضای کل > ظرفیت)، فایل .lst را بررسی کنید.
  • GAMS IDE: خروجی را در پنجره Output یا .lst ببینید و از کامنت‌ها برای مستندسازی استفاده کنید.

نکات کلیدی

  • تحلیل حساسیت: تأثیر تغییرات پارامترها (مثل تقاضا) روی نتایج.
  • مقادیر حاشیه‌ای: Demand.m و Supply.m حساسیت محدودیت‌ها را نشان می‌دهند.
  • GAMS IDE: اجرای کد با F9 و بررسی خروجی در پنجره Output.
  • کاربرد: برای ارزیابی سناریوها و شناسایی محدودیت‌های بحرانی.

گام بعدی

در قسمت بعدی، با مدل‌سازی با متغیرهای باینری آشنا می‌شوید تا تصمیم‌گیری‌های گسسته را مدل کنید. فایل‌های نمونه و ویدئوهای این دوره را از سایت بهینه‌یار دانلود کنید!

کلمات کلیدی: آموزش GAMS، تحلیل حساسیت در GAMS IDE، مدل‌سازی بهینه‌سازی، مقادیر حاشیه‌ای، بهینه‌یار

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *