برنامه ریزی خطی مثال حمل و نقل شهری و پیاده سازی در نرم‌افزار گمز

8 ماه پیش
حل مسائل حمل و نقل شهری با استفاده از برنامه ریزی خطی

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

شرح مسئله

در شهر اصفهان (بالاخره آدم باید یکم متعصب باشه روی شهرش دیگه!! :)) ) روزانه ده هزار مسافر از سه مسیر به مقصدهای مدنظرشان منتقل می‌شوندو حمل و نقل صورت میگیرد.  وسایل نقلیه هم شامل اتوبوس و مینی بوس می ‌شوند.  هزینه متغیر مینی بوس و اتوبوس به ترتیب ۲ و ۳ واحد در هر کیلومتر است. جریمه ای که مسافر در صورت نبودن وسیله نقلیه برای هر مسافر باید پرداخت شود ۵ واحد است.

همچنین مینی بوس دارای ظرفیت ۲۰ نفر و اتوبوس دارای ۴۰ نفر ظرفیت است. کل مینی بوس و اتوبوس های شهر اصفهان به ترتیب ۱۰۰ و ۶۰ دستگاه است.

همچنین هر مسیر دارای حداکثر ظرفیت برای هر یک از دو وسیله نقلیه می‌باشد. مسیر اول می تواند ۲۰ مینی بوس و ۲۵ اتوبوس را در خود تحمل کند. این اعداد برای مسیر۲  شامل ۴۰ مینی بوس و ۲۰ اتوبوس و برای مسیر ۳ شامل ۲۰ مینیبوس و ۳۰ اتوبوس است. طول مسیرها هم به ترتیب ۲۰، ۳۰ و ۴۰ کیلومتر است.

مقدار بهینه مینیبوس و اتوبوس برای هر یک از مسیرها را به دست بیاورید. ( این مثال از کتاب راهنمای جامع مدلسازی از دکتر سجاد آریانژاد اقتباس شده است)

حل مسئله

مرحله اول: چهارچوب بندی

در ابتدا کل مسئله را به صورت جدول چهارچوب میدهیم  تا بتوانیم دید کلی مناسب به مسئله را داشته باشیم:

 

نوع وسیله نقلیه ظرفیت(نفر) تعداد وسیله موجود حداکثر تعداد وسیله نقلیه هر مسیر
۱ ۲ ۳
مینیبوس ۲۰ ۱۰۰ ۲۰ ۴۰ ۲۰
اتوبوس ۴۰ ۶۰ ۲۵ ۲۰ ۳۰
طول مسیر ۲۰km ۳۰ ۴۰

مرحله دوم: ساختن ریاضی مسئله

در این قسمت بایستی متغییرهای تصمیم، پارامترها، تابع هدف  و … را بسازیم.

اولین گام تعیین متغییر تصمیم:

I را نماینده نوع وسیله و j  را نماینده نوع مسیر میگیریم و x را تعداد وسیله می گیریم. در نتیجه  نشان دهنده ی تعداد وسیله ی از نوع I  ام در مسیر j  ام است.

حال باید هدف مسئله را بفهمیم:

هدف مسئله شامل مینیمم کردن هزینه ها می باشد.

حال باید محدودیت ها را بفهمیم:

۱٫اولین محدودیت، تعداد ظرفیت وسیله   و مسافران  است که از تعداد خاصی بیشتر نمیشود:

S نشان دهنده ی تعداد افراد جا مانده در هر مسیر است.

۲٫محدودیت بعدی محدودیت تعداد وسیله نقلیه است:

۳٫ محدودیت سوم برای ظرفیت هر مسیر است:

حال تابع هزینه را می نویسیم:

 

مرحله سوم: نوشتن پارامتریک مسئله

مدل نویسی ما کامل شده است حال آن را به صورت پارامتریک می نویسیم تا بتوانیم آن را در گمز وار کنیم:

الف. اندیس ها و مجموعه ها:

i وسیله نقلیه { اتوبوس و مینی بوس}

J  مسیر { ۱و۲و۳}

ب. پارامترها:

Cap : ظرفیت وسیله نقلیه i

n : تعداد وسیله نقلیه i

C : ظرفیت مسیر j  برای وسیله نقلیه i

d : طول مسیر j  ام

cost : هزینه حمل هر کیلومتر با وسیله i ام

DG : هزینه جا ماندن مشتری برای هر مسیر

ج. متغیرهای تصمیم:

X و S

د. تابع هدف:

ه. محدویتهای ما:

 

مرحله چهارم: پیاده سازی در نرم افزار گمز

پس از اینکه مسئله را به صورت پارامتریک نوشتیم، آن را در گمز پیاده سازی میکنیم. من کدها را در نرم افزار گمز پیاده کردم و آن را در فایل Txt برای شما بارگذاری کرده‌ام. پس از دانلود آن، آن را با نرم افزار گمز اجرا کنید. حمایت از اکومودل را فراموش نکنید.

برای دانلود سورس کدهای این مثال روی این لینک کلیک نمایید.

4.3 (86.67%) 3 votes
0
برچسب ها :
نویسنده مطلب مصطفی رهنما
دانشجوی کارشناسی ارشد اقتصاد بخش عمومی - علاقه‌مند به مباحث مدلسازی، برنامه ریزی خطی و ترکیب برنامه‌نویسی و اقتصاد هستم. سعی می‌کنم مباحثی کاربردی در اختیار شما قرار دهم.