دوستان عزیز در لینک زیر یک پروژه برنامه ریزی خطی با نرم افزار گمز قرار داده شده است.
نرم افزار گمز GAMS به عنوان یک ابزار قدرتمند و فراگیر برای حل مدل های ریاضی حتی در ابعاد بزرگ روز به روز نقش پررنگ تری در رشته های مهندسی ایفا می کند، یعنی هر جا نیاز به تصمیم گیری بهینه با محدودیت زمان، هزینه و منابع داشته باشیم باید از مدل سازی ریاضی استفاده کرده که گمز از ابزارهای بسیار کارآمد حل این نوع مدل ها است.
نرم افزار تحقیق در عملیات GAMS برای حل مدل های برنامه ریزی خطی و غیرخطی مورد استفاده قرار می گیرد. این نرم افزار از سرعت بسیار بالایی در حل مدل های بزرگ برخوردار است. در واقع می توان از GAMS به عنوان بهترین نرم افزار حل مسائل بهینه سازی بسیار بزرگ و پیچیده نام برد. GAMS مخفف کلمه (The General Algebraic Modeling System) است. از GAMS برای حل مسائل برنامه ریزی خطی LP برنامه ریزی غیرخطی NLP، برنامه ریزی صحیح مختلط MIP برنامه ریزی غیرخطی صحیح مختلط MINLP و مسائل مکمل خطی MCP استفاده می کنند.همچنین GAMS یکی از نرم افزارهای حرفه ای در حل مسائل بهینه سازی ریاضی می باشد.
یکی از مهمترین و قویترین تکنیکهای حل مسئله دارای محدودیت منابع، برنامه ریزی خطی است. برنامه ریزی خطی تکنیکی ریاضی است که به وسیلهی آن میتوان نقاط بهینه توابع سود، تولید، زنجیره تامین و … را حل کرد. به دلیل اینکه تمامی توابع و روابط در این مسائل، خطی و درجه اول است؛ به آن برنامه ریزی خطی می گویند. با چند مثال از برنامه ریزی خطی موضوع را ملموس تر می کنیم.
فرض کنید، قصد ارسال ۲ کالا از کارخانه به انبارهای استانی و سپس به فروشگاه های شرکت خود را داشته باشید. کدام کالا به کدام انبار و در چه تعدادی باید ارسال شود؟ همچنین فرض کنید زلزلهای در کرمانشاه اتفاق افتاده است و قصد برپایی بیمارستانهای صحرایی را دارید. چه تعداد بیمارستان و به چه فاصله ای از روستاها و شهرهای آسیب دیده باید برپا شود؟ همهی این مسائل را میتوان با برنامه ریزی خطی حل کرد. اکومدل نیز می تواند پروژه ها و مسائل صنعتی و پیشرفته را برای شما با این وسیله حل کند.
برنامه ریزی خطی، یا به عبارت دیگر بهینه سازی خطی؛ روشی ریاضی برای پیدا کردن مقدار حداکثر (بیشینه) و حداقل (کمینه) تابعی خطی است به همراه قیود و محدودیتهای آن است. کاربرد اصلی برنامه ریزی خطی در مدیریت و اقتصاد است لیکن در مهندسی، از جمله مهندسی صنایع نیز کاربرد فراوان دارد. برنامه ریزی خطی جزئی از سرفصل درسی «تحقیق در عملیات» است که دانشجویان مدیریت آن را مطالعه میکنند.
هر مدل برنامه ریزی خطی از سه قسمت تشکیل شده است: ۱٫ تابع هدف ۲٫ محدودیتهای مسئله ۳٫ متغییرهای تصمیم
1- تابع هدف (Objective Funciton): تابعی ریاضی که بیانگر هدف مدل است. مثلا حداکثر کردن سود بنگاه اقتصادی و به صورت زیر نشان داده میشود:
cj xi ∑=Max z یا cj xi ∑= Min z
2- محدودیتها(Constraints): معادلات یا نامعادلاتی که در کنار تابع هدف، قرار می گیرد و بیانگر محدودیت هر یک از متغییرهای مسئله است. مثلا اگر تابع هدف را سود بنگاه فرض کنیم، قید بودجه یک محدودیت برای این بنگاه در نظر گرفته میشود. به عنوان مثال:
xi < ۱۰۰
3- متغیرهای تصمیم: بیانگر اجزایی از معادله هستند که بایستی مقدارشان کشف شود. به عنوان مثال تعداد کالاها در بنگاه اقتصادی که باید تولید شود، نشان دهنده ی متغییر تصمیم است. عمدتا به دو دسته ی غیر منفی و آزاد در علامت تقسیم میشوند.
مدل کلی برنامه ریزی خطی به صورت زیر می باشد:
روش لاگرانژ
در این روش تابع هدف به صورت تابع F در نظر گرفته میشود.
این تابع بر زیرمجموعهای چون X از فضای اقلیدسی تعریف شدهاست (پس عناصر X میتوانند بردار باشند). این زیرمجموعه، توسط قیود به شکل g(x)=b تعریف میشود. تابع لاگرانژ در این حالت عبارت خواهد بود از: ((L(x،y)=F(x)+y.(b-g(x
شرایط لازم برای حل مسئله را میتوان از طریق یافتن نقاط بحرانی تابع لاگرانژ (ماکزیممسازی بدون قید) به دست آورد.
روش برنامهریزی مرتبه دوم
برنامهریزی مرتبه دوم (QP) روشی برای مینیمم سازی توابع مرتبه دوم n متغیره با m محدودیت خطی نامساوی یا مساوی یا هر دو است.
مسائل برنامهریزی مرتبه دوم سادهترین فرم مسائل برنامهریزی غیر خطی با محدودیت نا مساوی میباشد.
روش گرادیان کاهش یافته عمومی
این الگوریتم برای محدودیتهای خطی اصلاح شده که تابع هدف و محدودیت آنها غیر خطی است محسوب میشود. در اصل روش محدودیتهای خطی یا خطی شده را شامل میشود و متغیر جدید با محدودیت تعریف خواهد شد. بیشتر روشهای حل مسائل برنامهریزی غیر خطی عمومی شامل خطی کردن مسئله و به کار بردن تکنیک برنامهریزی خطی است که بهطور خلاصه مراحل زیر طی میشود.
در روشهای ذکر شده ممکن است روش به همگرایی نرسد و این خود یکی از معایب روشهای فوق است به واقع بهترین الگوریتم عمومی حاضر استفاده از الگوریتم گرادیان کاهش یافته عمومی است.
جهت استفاده از گمز در مسائل با سایز متوسط به بالا شما نیازمند یک لایسنس هستید. لایسنسهای زیر بمیتوانند برای شما مفید باشند.
GAMSLICE1
gamslice2
gamslice3
توضیحات لایسنسها: در لایسنس اول و دوم تعدادی از سالورها در حالت دمو قرار دارند. همچنین با استفاده از لایسنس سوم شما می توانید از تمامی امکانات گمز استفاده کنید. توصیه گمز بوک استفاده از لایسنس سوم است. این لایسنس مخصوص نسخههای ۲۴٫۷٫۳ به بالا است.
پس مراحل نصب نرم افزار گمز به شکل زیر است:
۱- دانلود نسخهی مناسب برای سیستم عامل مورد استفاده
۲- دانلود لایسنس گمز (لایسنسی که در این تاپیک آپلود شده است را دانلود کنید، در صورتی که با کلیک بر روی آن به جای دانلود فایل یک صفحهی متنی باز شد، کل متن را کپی کرده و در یک فایل Notepad ذخیره نمایید)
۳- گمز را نصب نمایید.
۴- از طریق منوی file/options/license لایسنسی که دانلود کرده اید را نصب کنید.
۵-۱ در صورتی که gamslice1 را دانلود و نصب کرده اید، گمز را ببینید و تاریخ سیستم (کامپیوتر) را به ۲۰۰۴ بازگردانید. گمز را باز کنید مجددا.
۵-۲ در صورتی که gamslice2 را دانلود و نصب کرده اید، نیازی به تغییر تاریخ نیست.
۵-۳ در صورتی که gamslice3 را دانلود و نصب کرده اید، تاریخ را به ۲۰۱۴ برگردانید.
۶- مدل خود را ران کنید.
با انجام مراحل فوق، بیشتر سالورهای گمز از حالت دمو خارج خواهند شد و میتوانید با خیال آسوده مدل خود را ران کنید.
نکته ی خیلی خیلی مهم:
۱- لایسنس های سوم و سپس دوم را پیشنهاد میکنیم.
۲- دوستانی که سالور خواصی در گمز مد نظر دارند توجه کنند که در منوی file/options/solvers میتوانید وضعیت هر سالور را مشاهده کنید. عبارت Demo نشان دهنده ی دمو بودن سالور، عبارت expired نشان دهنده ی انقضای سالور و عباراتی نظیر ۳۶۵ days یا full نشان دهنده ی زمان باقی مانده تا انقضای سالور است. پس لایسنسی را انتخاب کنید که برای سالوری که مد نظر دارید، مناسب باشد.
۳- در صورتی که تاریخ سیستم را تغییر داده اید، پس از انکه کارتان با گمز تمام شد، تاریخ سیستم را به وضعیت اولیه بازگردانید تا بتوانید از تمامی امکانات مرورگر و همچنین سایتهایی نظیر گوگل استفاده کنید.
۴- در صورتی که قبلا لایسنس نصب کرده اید و قصد تغییر آن را دارید، در قسمت file/options/licence تیک گزینه use alternate licence file را بزنید. بعد لایسنس جدید را browse کنید.