آموزش GAMS – قسمت ۹ : ساختار یک کد ساده در GAMS

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

در قسمت‌های قبلی مجموعه آموزشی GAMS سایت بهینه‌یار، با مجموعه‌ها (Sets)، پارامترها (Parameters)، متغیرها (Variables)، و معادلات (Equations) آشنا شدیم. حالا در قسمت یازدهم، این اجزا را کنار هم می‌گذاریم تا ساختار یک کد ساده در GAMS را یاد بگیریم. این آموزش برای مبتدیان طراحی شده و با یک مثال عملی، نحوه نوشتن یک کد کامل برای حل یک مسئله بهینه‌سازی را نشان می‌دهیم. بیایید شروع کنیم!

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

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

ساختار یک کد ساده در GAMS

یک کد GAMS برای مدل‌سازی و حل یک مسئله بهینه‌سازی شامل بخش‌های زیر است:

  1. مجموعه‌ها (Sets): برای سازمان‌دهی داده‌ها (مثل شهرها یا محصولات).
  2. پارامترها (Parameters): داده‌های ثابت (مثل هزینه یا تقاضا).
  3. متغیرها (Variables): مقادیر تصمیم‌گیری که GAMS محاسبه می‌کند.
  4. معادلات (Equations): تابع هدف و محدودیت‌ها.
  5. مدل (Model): ترکیب تمام اجزا.
  6. حل (Solve): اجرای مدل با یک حل‌کننده.
  7. نمایش نتایج (Display): نمایش مقادیر بهینه.

این ساختار به شما امکان می‌دهد یک مسئله بهینه‌سازی را از ابتدا تا انتها مدل کنید و حل کنید.

مثال عملی: مسئله حمل‌ونقل ساده

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

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

* تعریف پارامترها
Parameters
  c(i) "هزینه حمل به هر شهر (هزار تومان)" /Tehran 50, Shiraz 100, Isfahan 80/
  d(i) "تقاضای هر شهر (واحد)" /Tehran 200, Shiraz 300, Isfahan 250/
  s "ظرفیت انبار (واحد)" /۵۰۰/;

* تعریف متغیرها
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;

توضیح کد

  • مجموعه‌ها: i شامل سه شهر (تهران، شیراز، اصفهان).
  • پارامترها:
    • c(i): هزینه حمل به هر شهر (مثل ۵۰ هزار تومان برای تهران).
    • d(i): تقاضای هر شهر (مثل ۲۰۰ واحد برای تهران).
    • s: ظرفیت انبار (۵۰۰ واحد).
  • متغیرها:
    • x(i): مقدار کالای حمل‌شده به هر شهر (مثبت).
    • z: هزینه کل (آزاد).
  • معادلات:
    • Cost: هزینه کل (z) برابر مجموع هزینه‌های حمل (c(i)*x(i)).
    • Demand: مقدار حمل به هر شهر (x(i)) حداقل برابر تقاضا (d(i)).
    • Supply: مجموع حمل (sum(i, x(i))) حداکثر برابر ظرفیت انبار (s).
  • مدل و حل:
    • Model Transport /all/: شامل تمام معادلات.
    • Solve Transport using LP minimizing z: مدل را به‌عنوان برنامه‌ریزی خطی (LP) حل می‌کند و z را کمینه می‌کند.
  • نمایش: Display x.l, z.l مقادیر بهینه مقدار حمل (x) و هزینه کل (z) را نشان می‌دهد.

خروجی نمونه

پس از اجرای کد، خروجی (در فایل .lst) چیزی شبیه این خواهد بود:

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

نکات مهم

  • ترتیب: همیشه مجموعه‌ها، پارامترها، متغیرها، معادلات، مدل، حل، و نمایش را به ترتیب بنویسید.
  • خوانایی: از توضیحات (مثل “هزینه کل”) و کامنت‌ها (با *) استفاده کنید.
  • حل‌کننده: برای مسائل خطی (LP) مثل این مثال، CPLEX یا GUROBI مناسب‌اند.
  • خطاها: اگر کد اجرا نشد، فایل .lst را برای خطاها (مثل تعریف نادرست متغیر) بررسی کنید.

ویدئوی آموزشی (۲ دقیقه)

در ویدئوی این قسمت:

  • ساختار کد GAMS را با یک نمودار ساده (اجزا: Sets، Parameters، Variables، …) توضیح می‌دهیم.
  • کد نمونه بالا را در GAMS Studio می‌نویسیم و اجرا می‌کنیم.
  • خروجی Display x.l, z.l را در پنجره Log نمایش می‌دهیم.

لینک ویدئو: [لینک آپارات یا یوتیوب، پس از آپلود اضافه کنید]

نکات کلیدی

  • ساختار کد: شامل Sets، Parameters، Variables، Equations، Model، Solve، و Display.
  • مثال ساده: مسئله حمل‌ونقل با مجموعه‌ها، پارامترها، و معادلات.
  • حل مدل: با دستور Solve و حل‌کننده مناسب.
  • نمایش نتایج: با Display مقادیر بهینه را ببینید.

گام بعدی

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

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

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

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