اصول کلی
طراحان نرم افزار GAMS با استفادده از نظریه ی پایگاه داده ای و برنامه ریزی ریاضی به دنبال طراحی نرم افزاری متناسب با نیاز مدل سازان بودند. نظریه ی پایگاه داده ای رابطه ای ، چارچوب منسجمی را برای گسترش توانایی تغییر و سازماندهی داده های عمومی فراهم میکند. از سویی ، برنامه ریزی ریاضی ابزار مناسبی برای تشریح یک مسئله و ارائه ی روش های حل آن است.
اصول زیر در طراحی سیستم GAMS به کار رفته اند:
تمامی روش های الگوریتمی موجود باید بدون ایجاد تغییر در نمایش مدل کاربر در دسترس باشند. معرفی روش های جدید یا اجراهای جدید روش های موجود باید بدون نیاز به ایجاد تغییر در مدل های موجود ممکن باشند. مسائل خطی، مسائل غیر خطی، مسائل آمیخته با اعداد صحیح، مسائل آمیخته با اعداد صحیح غیر خطی ، و مسائل امیخته ی متمم را می توان با این سیستم تطبیق داد.
مسائل بهینه سازی یاید مستقل از داده ها، قابل بیان باشند که این امر باعث می شود تا یک مسئله بدون آن که به میزان پیچیدگی اش افزوده شود، گسترده تر گردد.
دراستفاده از مدل داده ای رابطه ای، تخصیص منابع کامپیوتری باید به صورت خودکار باشند. به این معنی که ساخت مدل های بزرگ و پیچیده باید بدون نگرانی کاربر از مسائلی مانند اندازه ی آرایه ها و ذخیره سازی موقتی ، انجام پذیرد.
مستندات
مدل GAMS به گونه ای تعریف می شود که کاربرد آن ، برای کابران و کامپیوتر آسان می کند. در حقیقت برنامه یGAMS مستندی از مدل است و دیگر به توضیحات جداگانه ی گذشته نیازی ندارد .
همچنین طراحی GAMS با ویژگی های زیر بیانگر نیاز های کاربر به مستندات است:
تمامی تغییرات داده ها به صورت خلاصه و جبری مشخص شده اند. در حقیقت می توان همه ی داده ها را در جزئی ترین شکل آن ها وارد کرد. در ضمن تغییرات ایجاد شده در ساخت مدل و همچنین در گزارش گیری ، برای بررسی در دسترس هستند.
متن توصیفی بخشی از تعریف نماد ها را تشکیل می دهند، و با نمایش مقادیر متناظر ، این متن نیز مشاهده می شود.
تمامی اطلاعات مورد نیاز برای مدل در مستند آن موجود است.
واضح است که برای بهره بردن از ویژگی های ذکر شده، دستور العمل هایی را باید به کار برد. اما هدف این سیستم تبدیل مدل ها به مدل های در دسترس تر،قابل درک، قابل بازبینی ، و البته معتبر تر است.
قابلیت جابه جایی
طراحی سیستم GAMS به گونه ای است که اجرای مدل ها را بدون هیچ تغییری روی انواع سیستم های کامپیوتری امکان پذیر کرده است. پس یک مدل طراحی شده روی کامپیوتر کوچک شخصی را می توان روی یک پردازنده ی مرکزی نیز اجرا کرد. کاربر می تواند مدلی را طراحی کند که بعد ها مورد استفاده ی کابران دیگر نیز قرار گیرد؛ مانند افرادی که شاید از طراح اصلی فاصله ی بسیاری داشته باشند. در این شرایط ، در مقایسه با شیوه های قبلی، تنها باید مستندی را منتقل کرد که GAMS به عنوان تشریح مدل بیان می کند و دربر دارنده ی همه ی داده ها و مشخصات موردنیاز برای حل مدل است.
روابط کاربر
مطالب مربوط به قابلیت جابه جایی در مورد رابط کاربر نیز صادق است. سیستم بنیانی GAMS فایل گراست و هیچ ویراستار خاصی یا روال معمول و خروجی های گرافیکی ندارد. GAMS به جای این که کاربر به اموختن مجموعه ای از دستورات ویرایش جدید کند،ساختار بازی را ارئه میدهد که در آن کاربر میتواند از واژه پرداز یا ویراستار منتخب خود، بهره جوید. این رابط کاربر ، یکپارچگی GAMS را با انواع محیط های امروزی و آینده تسهیل می کند.
کتابخانه ی مدل
معماران برای طراحی یک ساختمان جدید، از ایده های و تکنیک های به کاررفته در ساختمان های پیشین استفاده می کنند. بنابراین ، از عناصر طراحی پروژه های پیشین به عنوان منبع ایده های جدید در پروژه های در حال اجرا استفاده می شود.
مدل های به کار فته در مراحل اولیه ی توسعه GAMS، برای استفاده ی کاربران در کتابخانه ای از مثال ها گردآوری شده اند. بسیاری از این نمونه ها منطبق بر مثال های کتاب های درسی استاندارد هستند و کاربر می تواند از آنها برای ساخت فرمول مسائل یا شرح نکات موجود در GAMS استفاده کند. تمامی مدل های با ماهیت واقعی در کتابخانه ی مدل به روشنی تشریح شده اند. کاربر می تواند با استفاده از یک پایگاه داده ای و مدل هایی که در هر سیستم GAMS قرار دارد، موضوعات مورد نظرش را پیاده کند.
علائم به کار گرفته شده برای معرفی ویژگی های این سیستم در فصل های مختلف ، از نشان گذاری قرار داد ثبت شده برای توضیح علائم یک زبان برنامه نویسی (BNF)(Backus Naur Form )، پیروی می کنند. در این قرار داد:
- []: نشان می دهد که عبارت داخل آن اختیاری است؛
- {}: نشان میدهد که عبارات داخل آن می تواند به نعداد مورد نیاز تکرار شود؛
- |: نشان میدهد که عملگر (or) (یا) در میان آرگومان های دو طرف نماد، قرار دارد.
نرم افزار GAMS جدای از اینکه خود یک زبان برنامه نویسی است و با محیطی که فراهم نموده است می توان توسط آن مسائل بهینه سازی را توسط حل کننده های (Solver) مختلف از جمله CPLEX، LINGO، BARON و… حل نمود.
در بهینه سازی توسط GAMS توابع هدف و محدودیت ها طبق قاعده خواصی تعریف شده و سپس توسط گزاره هایی که در زبان نرم افزار تعریف شده اند به نرم افزار فهمانده می شود که فلان مدل که دارای فلان تابع هدف و محدودیت ها است را با فلان حل کننده (Solver) حل کن. پس قواعد تعریف شده و در نظر گرفته شده در نرم افزار تقریبا برای همه ی Solver ها ثابت بوده و این امر به جامعیت GAMS کمک می کند و از طرفی به کاربر این امکان را می دهد که برنامه های پیچیده را با زبانی ساده توسط این حل کننده ها به کار گیرد.
مختصری از قواعد برنامه نویسی در GAMS
برنامه نویسی در GAMS قواعد مخصوص به خود را دارد که بسیاری از آنها با نرم افزارهای دیگر مشترک می باشند. مثال قبل را دوباره در نظر بگیرید. قواعد زیر در این مثال رعایت شده اند که باید در سایر مدل هایی که با GAMS نوشته می شوند، رعایت شوند. قواعد تکمیلی به صورت تصویری و گام به گام در بخش ساختار خواهد آمد.
حروف بزرگ و کوچک در GAMS تفاوتی نمی کنند.
برای رفتن به سطر بعدی از ENTER استفاده می شود.
با استفاده از نشان گر ماوس یا فلش های موجود در کیبورد می توان مکان ها مختلف در برنامه رفت.
کلید Tab فاصله ای معادل ۹ space کیبورد را در فایل ایجاد خواهد نمود. استفاده از کلید Tab ممکن است (به هنگام run کردن برنامه) با ایجاد Error همراه باشد. پس بهتر است که کاربران مبتدی فعلا از این کلید استاده نکنند.
هر یک از دستورات نوشته شده در GAMS باید با سیمی کالون (;) از هم جدا شوند.
اگر در ابتدای سطری علامت ستاره (*) آورده شود آن سطر به عنوان دستور در برنامه خوانده نخواهد شد.
تعدادی از کلمات مانند Set، Sum, Variable و… جزو تعریفات ویژه ی نرم افزار می باشند و در صورت استفاده کاربر از این اسامی به رنگ آبی در خواهند آمد.
آنچه مطالعه فرمودید شرح مختصری از چرایی و چگونگی محیط نرم افزار می باشند که هر کاربری در استفاده از آن ها دقت لازم را باید داشته باشد. سایر قواعد و ساختارهای نرم افزار در بخش های مختلف بخش آموزش پوشش داده شده اند.
با پیشرفت علم بشر، از دهه ۵۰ به بعد دانشمندان به ارائه الگوریتم های سریع و کارا با استفاده از برنامه نویسی کامپیوتری برای حل مدل های پیچیده و بزرگ ریاضی روی آوردند.
پیشرفت این علوم و تکنولوژی ها پیوسته تا دهه ی ۸۰ ادامه یافت و از این دهه به بعد توسعه ی چشم گیری در ساخت کامپیوتر های سریع، برنامه ها و نرم افزارهای کارا و الگوریتم های فوق العاده دیده می شود. یکی از جدیدترین نرم افزارهای ارائه شده نرم افزار GAMS می باشد. این نرم افزار قابلیت بسیار بالایی در حل مدل های مختلف ریاضی دارد. مهم ترین کاربرد GAMS بهینه سازی مدل های تحقیق در عملیات است. بیشتر نرم افزارهای ساخته شده توسط شرکت های مختلف تنها یک یا چند روش حل می توانند برای یک مدل ارائه دهند. به عنوان مثال نرم افزار پرکاربرد LINGO تنها از الگوریتم مخصوص به خود برای حل مدل های تحقیق در عملیات استفاده می کند. در حالی که GAMS برای انواع مدل ها مفید بوده و یک یا چند solver مخصوص برای حل آن دارد. ایده اصلی نرم افزار GAMS نیز برطرف کردن همین محدودیت بوده است.
مذیت های GAMS
مهیا نمودن یک زیان سطح بالا برای خلاصه کردن برنامه نویسی مدل های بزرگ و پیچیده
بستر مناسب برای ایجاد تغییرات آسان و ایمن در مدلها
محیط و زبان بسیار ساده برای ایجاد گزاره ها و روابط جبری مختلف
صرفه جویی در وقت و انرژی کاربر به هنگام برنامه نویسی
استفاده از solver های مختلف برای رسیدن به جواب مطلوب با سلیقه و تشخیص کاربر
ایجاد خطاهایی که کاربر را به سوی رفع خطا راهنمایی می کنند
ذخیره اطلاعات خروجی با روش ها و فرمت های مختلف و همچنین قابلیت بازخوانی اطلاعات مشابه
قابلیت اشتراک و تبادل اطلاعات با نرم افزار های دیگر مانند Excel، MATLAB، Access
این ویژگی ها و مذیت ها نشان می دهند که GAMS برتری چشم گیری نسبت به سایر نرم افزار بهینه سازی دارد. و اهمیت یادگیری و استفاده از آن را به رخ می کشد. از نرم افزار GAMS در حل مسائل برنامه ریزی خطی (LP)، غیر خطی (NLP)، عدد صحیح مختلط (MIP)، عدد صحیح خطی مختلط (MILP)، مکمل خطی (MCP) و… استفاده می شود.
منوی Help نرم افزار بسیار مفید بوده و می توان جهت یادگیری و رفع اشکال بیشتر از آن کمک گرفت.
کاربران با نسخه بدون لایسنس GAMS می توانند مدل های خود را با محدودیت های زیر مدل کنند:
– تعداد متغیرها و محدودیت ها نباید بیشتر از ۳۰۰ باشد.
– تعداد اجزای غیرصفر نباید بیشتر از ۲۰۰۰ عدد و برای برنامه ریزی غیرخطی ۱۰۰۰ عدد باشد.
– تعداد متغیرهای گسسته نباید بیشتر از ۵۰ عدد باشد.
ولی در نسخه کامل این نرم افزار هیچ محدودیتی برای حل مسائل وجود ندارد.
نرم افزار گمز به عنوان یک ابزار قدرتمند و فراگیر برای حل مدل های ریاضی حتی در ابعاد بزرگ ، روز به روز نقش پر رنگ تری در رشته های مهندسی ایفا می کند، یعنی هر جا نیاز به تصمیم گیری بهینه با محدودیت زمان، هزینه و منابع داشته باشیم باید از مدل سازی ریاضی استفاده کرده که گمز از ابزار های بسیار کارامد حل این نوع مدل ها است. در این اموزش علاوه بر آشنایی با قابلیت ها، ویژگی ها و روش های رفع خطاهای رایج نرم افزارگمز، برای حل و تحلیل مدل های ریاضی، با اصول و ساختار تشکیل مدل های ریاضی به صورت گام به گام و با حل مثال های آسان به سخت آشنا خواهیم شد تا بتوانیم با درکی درست ، ارتباط بیشتری بین ساختار مدل سازی و قابلیت های نرم افزار گمز ایجاد کنیم.
این متن دومین مطلب آزمایشی من است که به زودی آن را حذف خواهم کرد.
زکات علم، نشر آن است. هر وبلاگ می تواند پایگاهی برای نشر علم و دانش باشد. بهره برداری علمی از وبلاگ ها نقش بسزایی در تولید محتوای مفید فارسی در اینترنت خواهد داشت. انتشار جزوات و متون درسی، یافته های تحقیقی و مقالات علمی از جمله کاربردهای علمی قابل تصور برای ,بلاگ ها است.
همچنین وبلاگ نویسی یکی از موثرترین شیوه های نوین اطلاع رسانی است و در جهان کم نیستند وبلاگ هایی که با رسانه های رسمی خبری رقابت می کنند. در بعد کسب و کار نیز، روز به روز بر تعداد شرکت هایی که اطلاع رسانی محصولات، خدمات و رویدادهای خود را از طریق بلاگ انجام می دهند افزوده می شود.
این متن اولین مطلب آزمایشی من است که به زودی آن را حذف خواهم کرد.
مرد خردمند هنر پیشه را، عمر دو بایست در این روزگار، تا به یکی تجربه اندوختن، با دگری تجربه بردن به کار!
اگر همه ما تجربیات مفید خود را در اختیار دیگران قرار دهیم همه خواهند توانست با انتخاب ها و تصمیم های درست تر، استفاده بهتری از وقت و عمر خود داشته باشند.
همچنین گاهی هدف از نوشتن ترویج نظرات و دیدگاه های شخصی نویسنده یا ابراز احساسات و عواطف اوست. برخی هم انتشار نظرات خود را فرصتی برای نقد و ارزیابی آن می دانند. البته بدیهی است کسانی که دیدگاه های خود را در قالب هنر بیان می کنند، تاثیر بیشتری بر محیط پیرامون خود می گذارند.
درباره این سایت