آشنایی با حضرت GAMS، عروس بهینه سازی 0


بهینه­ سازی هنر یافتن بهترین جواب در بین وضعیت های موجود است

بهینه سازی در طراحی و نگه داری بسیاری از سیستم­های مهندسی، اقتصادی و حتی اجتماعی به منظور کاهش دادن هزینه های لازم و یا افزایش سود کاربرد دارد. کاربرد بسیار زیاد بهینه ­سازی در علوم متفاوت باعث شده که این مبحث رشد زیادی داشته باشد، به طوری که در ریاضیات، مدیریت، صنایع و بسیاری از شاخه­ های علوم مورد مطالعه ، بررسی و اجرا قرار می­گیرد. برای بررسی و حل یک مساله بهینه ­سازی ، در ابتدا باید آن را مدل نمود. مدل کردن به این معنی است که مساله را با متغیرها و روابط ریاضی توصیف کنیم ، به شکلی که مسئله بهینه­ سازی را شبیه­ سازی کند

تاریخچه

با پیشرفت روز افزون علم بشر از حدود دهه 1950به بعد ، دانشمندان در مسیر ساخت و استفاده از الگوریتم هایی کاربردی قدم نهادند ، که بتوانند از آن برای حل مدل ها و مسئله های پیچیده و بزرگ ریاضی با سرعت بالا کمک بگیرند. این علوم و تکنولوژی ها پیوسته تا دهه 1980 ادامه پیدا کرد و از این دهه به بعد توسعه چشم گیری در ساخت کامپیوتر های سریع ، نرم افزار ها و برنامه های کاربردی همچنین الگوریتم های فوق العاده بوجود آمد. یکی از جدید ترین نرم افزار های ساخته شده ، نرم افزار GAMS می باشد. مهمترین ویژگی این نرم افزار که باید به آن اشاره کنم این است که در بهینه سازی مدل های تحقیق در عملیات بسیار کاربردی است.

اولین بار GAMS توسط یک گروه اقتصاددانان عضو بانک جهانی برای ساده سازی و حل مدل ها و مسئله ها بر روی کامپیوتر شخصی راه اندازی و توسعه داده شد. در واقع GAMS در صنایع امکان حل کردن غیر همزمان سیستم معادلات خطی، حتی بدون بهینه سازی برخی از توابع هدف را دارد.

توسعه رابط کاربری GAMS در اواخر دهه ۱۹۹۰، استفاده از آن را حتی ساده تر کرد. GAMS-IDE به عنوان یک ویرایشگر متن کلی سازگار با WINDOWS کار می کند و توانایی راه اندازی و نظارت بر تدوین و اجرای برنامه­ های GAMS معمولی را ارائه می­دهد.

در واقع GAMS مخفف عبارت General Algebraic Modeling System است که یک سیستم مدلسازی سطح بالا برای برنامه نویسی و بهینه سازی در بین نرم افزار های مهندسی می باشد

بیشتر نرم افزارهای ساخته شده توسط شرکت های مختلف فعال در این حوزه می توانند تنها یک یا چند روش حل برای یک مدل ارائه دهند. به طور مثال نرم افزار LINGO که بسیار پرکاربرد هم می باشد تنها از الگوریتم مخصوص به خود برای حل مدل های تحقیق در عملیات استفاده می کند. در حالی که GAMS برای انواع مدل ها مفید بوده و یک یا چند solver مخصوص برای حل آن دارد. ایده اصلی نرم افزار GAMS نیز برطرف کردن همین محدودیت بوده است.

این نرم ­افزار شامل یک زبان کامپایلر و تعدادی Solver با عملکرد بالا است و برای مدل­سازی برنامه­ های کاربردی پیچیده و گسترده طراحی شده است. این نرم افزار به طور خاص برای مدل سازی مشکلات بهینه سازی عددی خطی، غیر خطی و ترکیبی طراحی شده است.

زبان GAMS به طور رسمی مشابه زبان های برنامه نویسی رایج است. بنابراین برای هر کسی که تجربه برنامه ­نویسی دارد آشناست، اما از آنجایی که مدل به گونه­ ای طراحی شده است که مشابه توصیف ریاضی آن است، نه تنها برنامه نویسان، بلکه متخصصان حوزه واقعی نیز می توانند آن را درک کنند. GAMS به کاربران خود اجازه می دهد تا مدل­ های ریاضی را به شیوه ­ای بسیار شبیه به توصیف مدل ریاضی خود مدل­سازی کنند. نگاهی به این قضیه، ساختار و خصوصیات اولیه یک مدل GAMS و نحوه ارتباط آن با فرمول ریاضی را نشان می دهد. از طریق این، GAMS به کاربر اجازه می دهد تا تمرکز خود را بر مدل سازی قرار دهند.

ساختار مدل­سازی در GAMS

شکل بالا ساختار مدل­سازی در گمز را به صورت خلاصه نشان می­دهد
شکل بالا ساختار مدل­سازی در گمز را به صورت خلاصه نشان می­دهد

بخش اول مدل­سازی شامل تعاریف هستند. هر مدل ریاضی شامل تعدادی اندیس و پارامتر بوده و با استفاده از آن­ها می­توان پارامترهای دیگری را نیز تعریف کرد. به عنوان مثال می­توان با داشتن پارامترهای زمان و مسافت طی شده، پارامتری به نام سرعت نیز تعریف کرده نموده و مقداردهی کرد.

بخش دوم مدل­سازی مربوط به تعریف مدل است. در این بخش باید متغیرهای مدل، توابع هدف و محدودیت­ ها معرفی و نگارش شوند. در نهایت به مجموعه توابع هدف و محدودیت­ های مورد نظر نامی اختصاص داده شود که معرفی مدل نوشته شده در گمز باشد. بدنه اصلی کدنویسی در گمز در این قسمت صورت می­گیرد و لزوم به کارگیری اصول کدنویسی در گمز در این بخش اهمیت فراوانی دارد.

بخش پایانی، مربوط به حل مدل است. در این قسمت با استفاده از دستور Solve می­توان مدل ریاضی را حل نمود و مقادیری خروجی را با استفاده از دستور Display نمایش داد. آنچه که در این بخش مهم است تعیین نوع مدل ریاضی است.

برخی از مدل های ریاضی
برخی از مدل های ریاضی

مهم ترین و پرکاربرد ترین مدل ریاضی مدل های برنامه ریزی عدد صحیح مختلط هستند که به صورت خطی و غیر خطی مدل سازی می شوند. این مدل ها شامل متغیرهای عدد صحیح و متغیرهای پیوسته بوده و بدین جهت به جهان واقعی نزدیک تر هستند.

از نرم افزار GAMS در حل مسائل برنامه ریزی خطی (LP)، غیر خطی (NLP)، عدد صحیح مختلط (MIP)، عدد صحیح خطی مختلط (MILP)، مکمل خطی (MCP) و . . . استفاده می شود.

نکته مهمی که در مدل سازی اهمیت زیادی دارد، زمان حل مدل است. زمان حل مدل بستگی به پیچیدگی مدل، بزرگی و کوچکی مساله مورد نظر و یا خطی و غیر خطی بودن آن دارد. البته ویژگی های سیستم کامپیوتری که نرم افزار گمز روی آن نصب شده نیز در این امر دخیل است. لذا استراتژی های کاهش زمان حل میتوانند شامل نگارش مدلهای ریاضی بهینه، کوچک سازی مساله و تبدیل مدل های خطی به غیر خطی و یا آزاد کردن برخی متغیرهای مساله باشد.

برخی از کاربردهای مدل­سازی ریاضی

  • مدیریت حمل و نقل کالا و مواد در شبکه‌های ارتباطی جاده‌ای، دریایی، هوایی و لوله‌های انتقال
  • افزایش کیفیت خدمات در حوزه سلامت و بیمارستان ها
  • ارزیابی بهره‌وری، کارایی و اثربخشی
  • تخصیص بهینه
  • بودجه‌ریزی بهینه با هدف استفاده مؤثر از هزینه‌ها
  • طراحی ساختار کارخانه‌ها با هدف جریان بهینه مواد و کالاها
  • برنامه ریزی تولید
  • ایجاد شبکه‌های ارتباطی با کمترین هزینه و اطمینان از کیفیت خدمات
  • مدیریت ترافیک خیابانی و جاده‌ای
  • طراحی ساختار چیپ‌های کامپیوتری با هدف کاهش زمان تولید
  • مدیریت جریان مواد و کالا در زنجیره تأمین
  • زمان‌بندی: کارکنان ، مراحل تولید ، مدیریت پروژه ، انتقال داده‌ها در شبکه‌ها

مزیت های نرم افزار GAMS

  • مدیریت ترافیک خیابانی و جاده‌ای
  • طراحی ساختار چیپ‌های کامپیوتری با هدف کاهش زمان تولید
  • مهیا نمودن یک زبان سطح بالا برای خلاصه کردن برنامه نویسی مدل های بزرگ و پیچیده
  • بستر مناسب برای ایجاد تغییرات آسان و ایمن در مدلها
  • محیط و زبان بسیار ساده برای ایجاد گزاره ها و روابط جبری مختلف
  • صرفه جویی در وقت و انرژی کاربر به هنگام برنامه نویسی
  • استفاده از solver های مختلف برای رسیدن به جواب مطلوب با سلیقه و تشخیص کاربر
  • ایجاد خطاهایی که کاربر را به سوی رفع خطا راهنمایی می کنند
  • ذخیره اطلاعات خروجی با روش ها و فرمت های مختلف و همچنین قابلیت بازخوانی اطلاعات مشابه
  • قابلیت اشتراک و تبادل اطلاعات با نرم افزار های دیگر مانند Excel، MATLAB، Access
  • منوی Help نرم افزار بسیار مفید بوده و می توان جهت یادگیری و رفع اشکال بیشتر از آن کمک گرفت

ویژگی های نسخه بدون لایسنس

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

  • تعداد متغیرها و محدودیت ها نباید بیشتر از ۳۰۰ باشد.
  • تعداد اجزای غیرصفر نباید بیشتر از ۲۰۰۰ عدد و برای برنامه ریزی غیرخطی ۱۰۰۰ عدد باشد.
  • تعداد متغیرهای گسسته نباید بیشتر از ۵۰ عدد باشد.

لازم به ذکر است که در نسخه کامل این نرم افزار هیچ محدودیتی برای حل مسائل وجود ندارد.


این ویژگی ها و مزیت ها نشان می دهند که GAMS برتری چشم گیری نسبت به سایر نرم افزار بهینه سازی دارد که اهمیت یادگیری و استفاده از آن را به رخ می کشد.

منابع :

  • faramohandes.ir
  • gamsbook.ir

شگفتانه

اگر چنانچه علاقه مند به یادگیری این نرم افزار پرکاربرد هستید انجمن علمی مهندسی صنایع دوره آموزشی این نرم افزار را طراحی و آماده سازی کرده که از اواخر شهریور ماه آغاز می شود شما عزیزان می توانید برای ثبت نام از طریق اینستاگرام و تلگرام اقدام کنید

  • کانال تلگرام انجمن : aem_sanaye_mazust@
  • صفحه اینستاگرام انجمن : ie_mazust@



باتشکر (hy)