آموزش GAMS – قسمت ۱۸ : خروجی دادن به اکسل در GAMS IDE

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

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

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

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

چرا خروجی را به اکسل ذخیره کنیم؟

ذخیره نتایج در اکسل:

  • تحلیل آسان: امکان استفاده از ابزارهای اکسل (مثل نمودارها) برای تحلیل نتایج.
  • اشتراک‌گذاری: فایل‌های اکسل برای ارائه به مدیران یا تیم‌ها مناسب‌اند.
  • مستندسازی: ذخیره نتایج برای پروژه‌های بزرگ و چندمرحله‌ای.

GAMS IDE از ابزار GDX (GAMS Data eXchange) و دستور gdxxrw برای انتقال نتایج به اکسل استفاده می‌کند.

مراحل خروجی دادن به اکسل در GAMS IDE

برای ذخیره نتایج مدل در اکسل:

  1. اجرای مدل: مدل را در GAMS IDE اجرا کنید و نتایج (مثل متغیرها) را محاسبه کنید.
  2. ذخیره در GDX: نتایج را در یک فایل .gdx ذخیره کنید.
  3. تبدیل به اکسل: از ابزار gdxxrw برای انتقال داده‌ها از فایل .gdx به اکسل استفاده کنید.

مرحله ۱: مدل‌سازی و اجرای مدل

از مدل حمل‌ونقل چندمحصولی استفاده می‌کنیم (مشابه قسمت‌های قبل). داده‌ها از اکسل وارد شده و نتایج در اکسل ذخیره می‌شوند.

ساختار فایل اکسل ورودی

فایل اکسل (data_output.xlsx) برای مسئله حمل‌ونقل چندمحصولی:

  • Sheet1 (هزینه‌ها)
  • Sheet2 (تقاضاها)
  • تبدیل اکسل به GDX برای مسئله

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

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

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

مرحله ۳: کد GAMS برای مدل و خروجی به اکسل

کد زیر مدل را اجرا می‌کند، نتایج را در فایل GDX ذخیره می‌کند و سپس به اکسل منتقل می‌کند:

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

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

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

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

* تعریف متغیرها
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(i,j);
Supply.. sum((i,j), x(i,j)) =l= s;

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

* ذخیره نتایج در پارامترها
x_result(i,j) = x.l(i,j);
z_result = z.l;

* ذخیره نتایج در فایل GDX
$gdxout results_output.gdx
$unload x_result z_result
$gdxout

* انتقال نتایج به فایل اکسل
$call gdxxrw results_output.gdx par=x_result rng=Sheet1!A1 par=z_result rng=Sheet2!A1 o=results.xlsx

توضیح کد

  • وارد کردن داده‌ها:
    • $gdxin data_output.gdx: داده‌های ورودی از فایل data_output.gdx.
    • $load i j c d: مجموعه‌ها و پارامترها را می‌خواند.
  • مدل‌سازی:
    • معادلات: تابع هدف (Cost), تقاضا (Demand), ظرفیت (Supply).
    • حل مدل: با حل‌کننده LP (مثل CPLEX).
  • ذخیره نتایج:
    • x_result(i,j) = x.l(i,j) و z_result = z.l: نتایج را در پارامترها ذخیره می‌کند.
    • $gdxout results_output.gdx: نتایج را در فایل results_output.gdx ذخیره می‌کند.
    • $call gdxxrw: نتایج را به فایل اکسل (results.xlsx) منتقل می‌کند.
  • اجرا در GAMS IDE:
    • فایل را ذخیره کنید (مثل transport_output.gms).
    • با کلید F9 اجرا کنید.
    • خروجی در فایل .lst و فایل اکسل (results.xlsx) قابل‌مشاهده است.

خروجی نمونه

در فایل اکسل (results.xlsx):

  • Sheet1 (مقدار حمل)
  • Sheet2 (هزینه کل):
  • توضیح: مقدار حمل (x_result) تقاضاها را تأمین می‌کند و هزینه کل ۳۱۷۵۰ هزار تومان است.

نکات مهم در GAMS IDE

  • ابزار gdxxrw: باید همراه GAMS نصب شده باشد. مسیر آن را در تنظیمات GAMS IDE بررسی کنید.
  • مسیر فایل‌ها: فایل‌های data_output.xlsx, data_output.gdx, results_output.gdx, و results.xlsx باید در پوشه پروژه باشند.
  • خطاها: اگر اکسل ایجاد نشد، پیام‌های خطا در پنجره Output یا .lst را بررسی کنید (مثل مسیر اشتباه یا مشکل در gdxxrw).
  • خوانایی: از کامنت‌ها (* یا $Ontext/$Offtext) برای مستندسازی استفاده کنید.

نکات کلیدی

  • خروجی به اکسل: نتایج مدل با gdxxrw به اکسل منتقل می‌شوند.
  • GDX: واسطه برای ذخیره نتایج قبل از انتقال به اکسل.
  • GAMS IDE: اجرای کد با F9 و بررسی فایل اکسل خروجی.
  • کاربرد: برای تحلیل نتایج و اشتراک‌گذاری با دیگران.

گام بعدی

در قسمت بعدی، با حلقه‌ها (Loops) در GAMS آشنا می‌شوید تا سناریوهای مختلف را به‌صورت خودکار اجرا کنید. فایل‌های نمونه و ویدئوهای این دوره را از سایت بهینه‌یار دانلود کنید!

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

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

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