آموزش 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: مجموع حمل (su