آموزش GAMS – قسمت ۱۰ : دستور Solve و حل مدل

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

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

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

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

دستور Solve چیست؟

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

اجزای دستور Solve

دستور Solve ساختار زیر را دارد:

Solve model_name using solver_type minimizing/maximizing objective_variable;
  • model_name: نام مدل (مثل Transport) که در بخش Model تعریف شده.
  • solver_type: نوع حل‌کننده (مثل LP برای برنامه‌ریزی خطی یا NLP برای غیرخطی).
  • minimizing/maximizing: مشخص می‌کند که تابع هدف باید کمینه یا بیشینه شود.
  • objective_variable: متغیر تابع هدف (مثل z برای هزینه کل).

انواع حل‌کننده‌ها

GAMS از حل‌کننده‌های مختلفی پشتیبانی می‌کند:

  • CPLEX و GUROBI: برای مسائل خطی (LP) و مختلط (MIP).
  • BARON و CONOPT: برای مسائل غیرخطی (NLP).
  • MINOS: برای مسائل خطی و غیرخطی. برای مسائل ساده مثل برنامه‌ریزی خطی، CPLEX یا GUROBI انتخاب‌های خوبی هستند و در نسخه دموی GAMS در دسترس‌اند.
solver در gams

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

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

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

* تعریف معادلات
E