آموزش GAMS – قسمت ۱۴ : وارد کردن داده‌ها از اکسل

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

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

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

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

چرا از اکسل برای داده‌ها استفاده کنیم؟

وارد کردن داده‌ها از اکسل در GAMS:

  • مدیریت آسان: داده‌ها را در جدول‌های مرتب ذخیره می‌کند.
  • کاهش خطا: از وارد کردن دستی داده‌ها در کد جلوگیری می‌کند.
  • مقیاس‌پذیری: برای مدل‌های بزرگ با صدها یا هزاران داده مناسب است.

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

مراحل وارد کردن داده‌ها از اکسل در GAMS IDE

برای وارد کردن داده‌ها از اکسل به GAMS IDE:

  1. ایجاد فایل اکسل: داده‌ها را در یک فایل اکسل (.xlsx) به‌صورت جدول مرتب کنید.
  2. تبدیل به GDX: از ابزار خارجی مثل gdx2excel یا اسکریپت‌های GAMS برای تبدیل اکسل به فایل .gdx استفاده کنید.
  3. خواندن در GAMS IDE: با دستور $load داده‌ها را از فایل .gdx به مدل وارد کنید.

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

فرض کنید می‌خواهید هزینه حمل و تقاضا را برای مسئله حمل‌ونقل وارد کنید. فایل اکسل (data.xlsx) باید به این شکل باشد:

Sheet1 (هزینه‌ها):

Sheet2 (تقاضاها):

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

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

GAMS IDE به‌طور مستقیم ابزار گرافیکی برای تبدیل اکسل به GDX ندارد، بنابراین از یک اسکریپت GAMS یا ابزار خارجی مثل gdx2excel استفاده می‌کنیم:

  1. یک فایل GAMS جدید (مثل convert.gms) در GAMS IDE ایجاد کنید:* تبدیل اکسل به GDX Sets i "شهرها"; Parameters c(i) "هزینه حمل" d(i) "تقاضا"; $call gdxxrw data.xlsx par=c rng=Sheet1!A1:B4 par=d rng=Sheet2!A1:B4 $gdxout data.gdx $unload i c d $gdxout
  2. این کد را در GAMS IDE اجرا کنید (کلید F9 یا دکمه Run).
  3. فایل data.gdx در پوشه پروژه ایجاد می‌شود.

مرحله ۳: خواندن داده‌ها در GAMS IDE

کد زیر داده‌ها را از فایل data.gdx می‌خواند و مدل حمل‌ونقل را حل می‌کند:

* مدل حمل‌ونقل با داده‌های اکسل در GAMS IDE
$Ontext
این مدل هزینه حمل کالا را با داده‌های خوانده‌شده از اکسل کمینه می‌کند.
$Offtext

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

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

* وارد کردن داده‌ها از فایل GDX
$gdxin data.gdx
$load i c d
$gdxin
s = 500;  * ظرفیت انبار به‌صورت دستی

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

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

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

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

* نمایش نتایج
Display x.l, z.l;

توضیح کد

  • وارد کردن داده‌ها:
    • $gdxin data.gdx: فایل data.gdx را باز می‌کند.
    • $load i c d: مجموعه i و پارامترهای c و d را از فایل GDX می‌خواند.
  • بقیه کد:
    • مجموعه‌ها (i): از اکسل خوانده می‌شود.
    • پارامترها: هزینه (c) و تقاضا (d) از اکسل، ظرفیت (s) دستی.
    • متغیرها: مقدار حمل (x) و هزینه کل (z).
    • معادلات: تابع هدف (Cost), تقاضا (Demand), ظرفیت (Supply).
  • اجرا در GAMS IDE:
    • فایل را ذخیره کنید (مثل transport.gms).
    • با کلید F9 یا دکمه Run در GAMS IDE اجرا کنید.
    • خروجی در پنجره Output یا فایل .lst نمایش داده می‌شود.

خروجی نمونه

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

x.l(Tehran)  200.000
x.l(Shiraz)  300.000
x.l(Isfahan) 250.000
z.l          29500.000
  • توضیح: ۲۰۰ واحد به تهران، ۳۰۰ واحد به شیراز، ۲۵۰ واحد به اصفهان حمل می‌شود. هزینه کل ۲۹۵۰۰ هزار تومان است.

نکات مهم در GAMS IDE

  • مسیر فایل: مطمئن شوید فایل data.xlsx و data.gdx در پوشه پروژه GAMS IDE هستند (معمولاً C:\GAMS\workdir).
  • ابزار gdxxrw: این ابزار باید در سیستم نصب باشد (همراه با GAMS نصب می‌شود).
  • بررسی خطاها: اگر داده‌ها خوانده نشد، پیام‌های خطا در پنجره Output یا فایل .lst را بررسی کنید (مثل مسیر اشتباه فایل یا نام نادرست ستون‌ها).
  • خوانایی: از کامنت‌ها (* یا $Ontext/$Offtext) برای توضیح مراحل استفاده کنید.

نکات کلیدی

  • اکسل: داده‌ها را در جدول‌های مرتب با نام‌های دقیق ذخیره کنید.
  • GDX: فایل واسطه برای خواندن داده‌ها در GAMS IDE.
  • دستور $load: برای وارد کردن مجموعه‌ها و پارامترها از GDX.
  • GAMS IDE: با اجرای کد (F9) داده‌ها را می‌خواند و مدل را حل می‌کند.

گام بعدی

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

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

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

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