آموزش GAMS – قسمت ۱۵ : مدل‌سازی مسائل چندمحصولی در GAMS

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

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

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

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

مسائل چندمحصولی چیست؟

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

چرا چندمحصولی مهم است؟

  • واقع‌گرایی: مدل‌های چندمحصولی به مسائل واقعی (مثل زنجیره تأمین) نزدیک‌ترند.
  • پیچیدگی: نیاز به مدیریت داده‌های چندبعدی (مثل هزینه برای هر محصول و شهر).
  • انعطاف‌پذیری: امکان مدل‌سازی سناریوهای متنوع.

مدل‌سازی چندمحصولی در GAMS IDE

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

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

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

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

Sheet2 (تقاضاها):

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

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

  1. یک فایل GAMS جدید (مثل convert_multi.gms) در GAMS IDE ایجاد کنید:
* تبدیل اکسل به 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 در GAMS IDE اجرا کنید.
  2. فایل data_multi.gdx در پوشه پروژه ایجاد می‌شود.

مرحله ۳: کد GAMS برای مسئله چندمحصولی

کد زیر داده‌ها را از data_multi.gdx می‌خواند و مدل حمل‌ونقل چندمحصولی را حل می‌کند:

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

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

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

* وارد کردن داده‌ها از فایل GDX
$gdxin data_multi.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 TransportMulti /all/;
Solve TransportMulti using LP minimizing z;

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

توضیح کد

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

خروجی نمونه

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

x.l(Tehran,Product1)   200.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                   31750.000
  • توضیح: مقدار حمل هر محصول به هر شهر (مثل ۲۰۰ واحد Product1 به تهران) و هزینه کل ۳۱۷۵۰ هزار تومان است.

نکات مهم در GAMS

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

نکات کلیدی

  • چندمحصولی: مدل‌سازی با چندین محصول و مجموعه‌های چندبعدی.
  • اکسل و GDX: داده‌ها از اکسل با $load وارد می‌شوند.
  • GAMS IDE: اجرای کد با F9 و بررسی خروجی در پنجره Output.
  • کاربرد: برای مسائل پیچیده‌تر مثل زنجیره تأمین.

گام بعدی

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

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

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

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